列表(列表网免费发布信息网)

网友投稿 305 2022-08-27


列表(列表网免费发布信息网)

为什么需要列表

1.变量可以存储一个元素,而列表是一个“大容器”,可以存储N多个元素,程序可以方便地对这邪恶数据进行整体操作。

2.列表相当于其他语言中的数组(例如C)。

3.列表示意图

索引(逆向)    -3               -2           -1

数据             "hello"         "world"     123

索引(正向)      0                 1            2

a = 10 #变量a存储的是一个对象的引用lst = ['hello','world',123] #lst存储多个对象,可操作多个对象print(id(lst))print(type(lst))print(lst)'''lst的id值与列表中元素的id值都不相同,它们之间是一个指向的关系,lst的id指向首元素的id'''

列表的创建

print('-------------列表的创建-----------')#第一种方式,使用[]lst1 = ['hello','world','789']print(lst1)#第二种方式,使用内置函数list()lst2 = list(['hello','world','456'])print(lst2)

列表的特点

1.列表元素按顺序有序排序

2.索引映射唯一一个数据

3.列表可以存储重复数据

4.任意数据类型混存

5.根据需要动态分配和回收内存

列表的查询操作

1.获取列表中指定元素的索引(index())

1.如查列表中存在N个相同元素,只返回第一个元素的索引

2.如果查询的元素在列表中不存在,则抛出ValueError

3.还可以在指定的start和stop之间进行查找

print('-----------------列表的查询操作----------------------')print('--------index()索引--------')lst = ['hello','world',123,'hello']print(lst.index('hello'))#查找字符串hello,返回元素所在索引位置,即0print(lst.index('hello',1,3))#在start = 1 和 stop = 3之间查找hello,没有找到,抛出ValueErrorprint(lst.index('python'))#在列表中查找字符串python,没有找到,抛出ValueError

2.获取列表的单个元素

正向索引从0到N-1,lst[0]     lst[1]   ...........   lst[N-1]

逆向索引从-N到-1,lst[-N]   lst[-(N-1)]   ...............    lst[-1]

指定元素不存在,抛出IndexError

print('--------获取列表的单个元素-------')lst = ['hello','world',652]print(lst[0],lst[1],lst[2])#正向索引print(lst[-3],lst[-2],lst[-1])#逆向索引print(lst[4])#指定索引不存在,抛出IndexError

3.获取列表中的多个元素

语法格式    列表名[start:stop:step]

切片操作

切片的结果:原列表片段的拷贝

切片的范围:[start,stop]

step默认为1:简写为[start:stop]

step默认为正数:[:stop:step],切片的第一个元素默认是列表的首元素

[start::step],切片的最后一个元素默认是列表的最后一个元素

从start开始往后计算切片

step默认为负数:[:stop:step],切片的第一个元素默认是列表的最后一个元素

[start::step],切片的最后一个元素默认是列表首元素

从start开始往前计算切片

print('--------获取列表的多个元素--切片--------')#!!!!!注意,到stop就停止,不包括stop所指元素lst = [10,20,30,40,50,60,70,80]print(lst[1:6:1])print(lst[1:6]) #输出的元素与前一行输出元素相同lst2 = lst[1:6:1]print('原列表:',id(lst))print('切的片段',id(lst2)) #新的列表#step为正数print(lst[1:6:2]) #步长为2,从1开始输出,输出20,40,60print(lst[:6:2]) #默认从首元素开始输出,输出10,30,50print(lst[1::2]) #默认输出到最后一个元素,输出20,40,60,80#step为负数print(lst[::-1]) #逆序输出列表print(lst[7::-1]) #步长为1,从7开始往前输出元素,输出到首元素停止print(lst[6:0:-2]) #步长为2,从6开始往前输出元素,输出到索引位置0停止

4.判断指定元素在列表中是否存在

元素   in   列表名

元素   not   in   列表名

print('------判断指定元素是否存在----------')print('p' in 'python')print('w' not in 'python')lst = [123,456,789]print(123 in lst)print(456 not in lst)

5.列表元素的遍历

for 迭代变量 in 变量名

操作

print('-------列表元素的遍历----------')lst = ['hello','world',652]for item in lst: print(item)

列表元素的增加操作

1.append() -- 在列表的末尾添加一个元素

print('-------列表元素的增加操作-----------')print('--------append()-----------')lst = [10,20,30]print('原列表:',lst,id(lst))lst.append(100)print('增加元素后:',lst,id(lst))#id值没有发生改变,说明在原来的列表上增加元素,没有创建新的列表lst2 = [40,50,60]lst.append(lst2) #将lst2作为一个元素添加print(lst)

2.extend() -- 在列表的末尾至少添加一个元素

print('----------extend()----------')lst = [60,70,80,90]lst2 = [100,110,120]print(lst)lst.extend(lst2) #将lst2中的元素一个一个的添加print(lst)

3.insert() -- 在列表的任意位置添加一个元素

print('--------insert()---------')lst = [569,640,652,654,671]print(lst)lst.insert(2,641) #在索引为2的位置上添加641,其他元素向后依次移动print(lst)

4. 切片 -- 在列表的任意一个位置至少添加一个元素

print('-------切片-------------')lst = [True,False,'hello']lst1 = [True,True]print(lst)lst[2:] = lst1 #在索引为2的位置上添加元素,后面元素全部切掉print(lst)

列表元素的删除操作

1.remove()

1.一次删除一个元素

2.重复元素只删除第一个

3.元素不存在,抛出ValueError

print('---------------列表的删除操作---------------')print('-----remove()------------')lst = [10,20,30,40,50,60,30]print(lst)lst.remove(30) #重复元素值删除第一个print(lst)lst.remove(100) #元素不存在,抛出ValueError

2.pop()

1.删除一个指定索引位置上的元素

2.指定索引不存在,抛出IndexError

3.不指定索引,则删除列表中最后一个元素

print('---------pop()--------')lst = [10,20,30,40,40,50,60]print(lst)lst.pop(4)print(lst)lst.pop(10)

3.切片 -- 一次至少删除一个元素

print('------切片--------')lst = [50,60,70,10,20,30]new_lst = lst [0:3]print(lst)print(new_lst) #产生一个新的列表对象lst[0:3] = []print(lst) #不产生新的列表对象

4.clear() -- 清空列表

print('-------clear()-------')lst = [10,30,50]print(lst)lst.clear()print(lst)

5.del -- 删除列表

print('-----del----')del lstprint(lst)

列表元素的修改操作

1. 为指定索引的元素赋予一个新值

2.为指定的切片赋予一个新值

print('---------列表元素的修改操作----------')lst = [10,20,30,40]print(lst)lst[2] = 100print(lst)lst[1:3] = [400,500,600,700]print(lst)

列表元素的排序操作

1.sort()

调用sort()方法,列表中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse = True,进行降序排序

2.sorted()

调用内置函数sorted(),可以指定reverse = True,进行降序排序,原列表不发生改变

print('--------列表的排序操作--------')lst = [20,40,10,98,54]print(lst,id(lst))lst.sort()print(lst,id(lst)) #不产生新的列表对象lst.sort(reverse = True) #降序排序print(lst)lst.sort(reverse = False) #反之升序排序print(lst)new_lst = sorted(lst)print(lst,id(lst))print(new_lst,id(new_lst)) #产生新的列表对象

列表生成式

语法格式

[i*i   for   in     range(1,10)]

print('-------列表生成式-----------')lst = [i for i in range(1,10)]print(lst)#lst中元素为1 2 ... 9lst = [i*2 for i in range(1,10)]print(lst)#lst中元素为1*2 2*2 ... 9*2lst = [i*i for i in range(1,10)]print(lst)#lst中元素为1*1 2*2 3*3 ... 9*9


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python中常见的异常
下一篇:Java实现经典游戏超级玛丽的示例代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~