作用
按位置存放多个值
定义
用逗号分隔开,可存放多个类型的
类型转换
但凡能够被for循环遍历的类型,都可以当做参数反给list()转成列表,List的底层原理相当于一个for循环
l=[]
for x in 'hello':
l.append(x)
print(l)
res=list({'k1':111,'k2':222,'k3':333})
print(res)#字典无序
#输出
# ['h', 'e', 'l', 'l', 'o']
# ['k1', 'k2', 'k3']
内置方法❤️
1.按照索引取值(可以正向存取,也可以反向存取)可以存,也可以改
索引存在则修改对应的值
l=[111,'lina','hello']
print(l[0])#索引从0开始
print(l[-1])
l[0]=222
print(l)
#输出
# 111
# hello
# [222, 'lina', 'hello']
#列表运算
vehicle1 =['train', 'bus', 'car', 'ship']
vehicle2 =['subway', 'bicycle']
#列表运算
print(vehicle1 + vehicle2)
#通过列表相加的方法生成新 [train', bus', 'car', 'ship', 'subway', "bicycle]
print(vehicle1)
print(vehicle2)
# 没有改变
vehicle=vehicle1 + vehicle2 #生成新列表赋值给变量
vehicle+=['bike']#复合赋值语句
print(vehicle)
#['train', 'bus', 'car', 'ship', 'subway', 'bicycle', bike]
#查看元素index()、 in 、count
vehicle = ['train', 'bus', 'car', 'subway', 'ship', 'bicycle', 'car']
print(vehicle.index('car'))#整个列表范围内car第1次出现的索引位置是2
#print(vehicle.index('plane'))#整个列表范围内没有'plane' 错误
print(vehicle.index('car',3))#在从索引为3开始,car第1次出现的索引位置是6
#print(vehicle.index('car',3,6))#在从3开始到6(不包含6)的索引范围内没有'car'错误
#实际上可以先使用in运算符测试某个元素是否在该列表中,避免用 index()查找索引位置时由于找不到指定元素而导致的错误。
print('car' in vehicle)
print('plane' in vehicle)
if 'car' in vehicle[3:6]:
print('[3,6)范围内car位置索引为:',vehicle.index('car',3,6))
else:
print('在[3,6)范围内没有car')
#输出
# 2
# 6
# True
# False
# 在[3,6)范围内没有car
vehicle = ['train','bus','car','ship','car','train','ship','car']
print(vehicle.count('car'))
print(vehicle.count('train'))
print(vehicle.count('bike'))
#输出
# 3
# 2
# 0
2.添加列表元素除了前面介绍的“+”、“+=” “*_”运算符以外, 还有append()、extend()、insert()方法。
append()方法,追加单个元素到列表的尾部,只接受一个元素,元素可以是任何数据类型,被追加的元素在列表中保持着原结构类型。
vehicle = ['train','bus','car','ship']
vehicle.append('plane')
print(vehicle)
vehicle.append(8)
print(vehicle)
vehicle.append([8,9])
print(vehicle)
#输出
# ['train', 'bus', 'car', 'ship', 'plane']
# ['train', 'bus', 'car', 'ship', 'plane', 8]
# ['train', 'bus', 'car', 'ship', 'plane', 8, [8, 9]]
将一个列表放入另一个列表extend
new_l=[1,2,3]
l=[111,'lina','hello']
l.extend(new_l)
print(l)
# [111, 'lina', 'hello', 1, 2, 3]
insert
insert方法,将一个元素插入到列表中的指定位置。列表的insert方法有两个参数,第一个参数是索引点,即插入的位置,第二个参数是插入的元素。
vehicle = ['train','bus','car','ship']
vehicle.insert(3,'plane')
print(vehicle)
vehicle.insert(0,'plane')
print(vehicle)
vehicle.insert(-2,'bike')
print(vehicle)
# 输出
# ['train', 'bus', 'car', 'plane', 'ship']
# ['plane', 'train', 'bus', 'car', 'plane', 'ship']
# ['plane', 'train', 'bus', 'car', 'bike', 'plane', 'ship']
3.删除,del,pop,remove
除了del命令以外,还有remove()、pop()、 clear()方法。
remove()方法,用于移除列表中与某值匹配的第一个元素。如果找不到匹配项,就会引发异常
pop()方法用于移除列表中的一个元素(默认为最后一个元素),并且返回该元素的值。pop()方法可以指定索引位置,当不在索引范围内或者从空列表中使用此方
法均会触发异常。
l=[111,'lina','hello']
del l[1]#通用,无返回值
print(l)
# [111, 'hello']
l.pop()#不指定索引,默认删最后一个
print(l)
print(l.pop)#有返回值,返回删回的值
# [111, 'hello']
# [111]
l=[111,'lina','hello']
l.remove(111)#填啥删啥,返回值为None
print(l)
vehicle = ['train','bus','car','ship','car','train','ship','car']
print(vehicle.remove('car'))
print(vehicle)#第一个car被删除
4.切片:是一种拷贝行为,并不改变列表(顾头不顾尾)
l=[111,'lina','hello']
nel_l=l[:]#切片等同于拷贝行为,浅拷贝
print(nel_l)
# [111, 'lina', 'hello']
print(l[::-1])#列表倒过来
# ['hello', 'lina', 111]
vehicle = ['train','bus','car','ship']
print(vehicle[0:10:10])#train#step在这里不可以大于10
#当切片开始值与结束值均省略,且步长step大于0,表示在整个原列表范围内,切片索引从第0个位置开始,
#每次增长step,直到超过原列表的索引范围。
n=list(range(10))
print(n[::3])
#[0,3,6,9]
print(n[7:2:-1])#步长为负数时,start不能小于end值
#[7,6,5,4,3]
print(n[11::-2]) #11超过范围,实际索引从最后一个元素开始。
#[9,7,5,3,1]
print(n[::-2])#这里步长为负数,表示在整个列表内,从后往前取值。
#[9,7,5,3,1]
print(n[::-1])#[9,8,7,6,5,4,3,2,1,0]
#另外,利用切片还可以更改元素值。
n[2:4]=[10.11]#分别更改索引号为2和3的位置上元素值。
print(n)
#[0, 1, 10, 11,4,5,6,7,8,9]
n[-5::2]=[-1,-2,-3] #分别更改索引号为-5、-3、-1三个位置上的元素值。
print(n)
#[0, 1,10, 11,4, -1,6,-2,8,-3]
l=[111,'lina','hello']
l.append(333)
l.append(444)#追加
print(l)
# [111, 'lina', 'hello', 333, 444]
l=[111,'lina','hello']
l.insert(0,444)#插入
print(l)
# [444, 111, 'lina', 'hello']
#二维列表访问:对于二维列表中的元素
computer=[['a','b','c','d'],['A','B','C','D']]
print(computer[0][3])#d
print(computer[0][-3])#b
print(computer[1][-4])#A
print(computer[1][3])#D
computer[0][3]='HAHA'#修改
print(computer[0][3])#HAHA
5.长度,成员运算硬核not in
6.循环过程中不要改in后面里面的元素
7.需要掌握的内容
8.列表排序
sort()默认False 降序排序
num=[99,34,12,3.14,-10]
num.sort(key=str)#转换为字符串后的大小升序排序
print(num)#[-10, 12, 3.14, 34, 99]
num=[99,34,12,3.14,-10]
print(len(num))
print(max(num))#列表中只能包含可比较的类型
print(min(num))
# 输出
# 5
# 99
# -10
是字符串的话,num.sort(key=len)#字符串长度升序排序
含有数字和字符串的列表在进行排序时,都转换为字符串可以排序num.sort(key=str),直接排序或者按长度(数字没有长度)排序会发生错误