目录
5.index(x):查找x,返回第一次出现的下标,找不到则引发异常
7.pop(i):删除并返回下标为i的元素,若i为空则删除最后一个元素
8.remove(x):删除元素x,如果有多个x,只删除第一个。若x不存在,则引发异常
1.列表的定义和初始化:
#列表的定义和初始化:
mylist1=[1,2,'ok',[1,2]]
mylist2=[]#定义一个空列表
mylist1.append([1,2])#用append函数往列表中添加元素
mylist2.append('ok')#往列表2中添加元素
print(mylist1)
print(mylist2)
#运行结果
[1, 2, 'ok', [1, 2], [1, 2]]
['ok']
2.列表的访问和切片操作:
列表内容 | 1 | 2 | 'ok' | 4 |
正向下标 | 0 | 1 | 2 | 3 |
反向下标 | -4 | -3 | -2 | -1 |
切片时 :list1[m,n]的实际下标范围为[m.n-1]
#列表下标的访问:
list1=[1,2,'ok',[2,3]]
print(list1[0])#访问下标为0的元素
print(list1[-1])#访问下标为-1的元素
#运行结果
1
[2, 3]
#列表的切片:
print(list1[:])#输出整个列表
print(list1[::-1])#逆序输出整个列表
print(list1[1:])#从下标为1开始输出整个列表
print(list1[-3::-1])#从下标为-3开始逆序输出整个列表
print(list1[0:3])#从下标为0输出到下标为3-1=2
#运行结果
[1, 2, 'ok', [2, 3]]
[[2, 3], 'ok', 2, 1]
[2, 'ok', [2, 3]]
[2, 1]
[1, 2, 'ok']
注意:列表切片后的结果为新列表
3.列表的加法及列表与数字的乘法:
#列表的加法
a=[1,2,3,4]
b=[5,6]
c=a+b#生成一张新的列表,让c指向该列表
a+=b#不生成新列表在a中直接添加b列表中的元素
a[0]=100#a[0]影响a,但不影响c
print(c)
print(a)
#输出结果
# [1, 2, 3, 4, 5, 6]
# [100, 2, 3, 4, 5, 6]
#列表与数字的乘法
a=[1,2,3]
c=a*3#a*n代表一张新的列表,内容是将a中元素写n遍
print(a*3) #[1, 2, 3, 1, 2, 3, 1, 2, 3]
a[2]="ok"#新列表生成后与a没有任何联系,改变a中元素的值c中元素的值不会改变
print(c) #[1, 2, 3, 1, 2, 3, 1, 2, 3]
d=[a]*3#[a]*n是一张新列表,表中元素是n个指针和a指向同一张列表(或者说新生成的列表中的n个a指向同一个地方)改变a的值d会改变,
print(d) #[[1, 2, 'ok'], [1, 2, 'ok'], [1, 2, 'ok']]
a.append('ko')
a[0]=100
print(d) #[[100, 2, 'ok', 'ko'], [100, 2, 'ok', 'ko'], [100, 2, 'ok', 'ko']]
#列表加法和乘法的混合运算
a=[[0]]*2+[[0]]*2
print(a) #[[0], [0], [0], [0]]
a[0][0]=5#前两个[0]指向同一个地方,后两个[0]指向同一个地方
print(a) #[[5], [5], [0], [0]]
4.列表的遍历:
#通过for循环遍历:
lst=[1,2,3,4,5]
for i in lst:#直接遍历列表的各个元素
print(i,end=' ')
print('')
for i in range(len(lst)):#通过下标遍历列表的元素
lst[i]=0#通过下标遍历,可对列表中元素的值进行操作
print(lst[i],end=' ')
#运行结果
# 1 2 3 4 5
# 0 0 0 0 0
5.列表的成员函数:
1.count(x):计算列表中有多少x
a=[1,2,3,4,5,2]
b=[[1,2],[1,2],'ok','ok',a,a]
print(a.count(2))
print(b.count([1,2]))
print(b.count('ok'))
print(b.count(a))
运行结果:
2
2
2
2
2.append(x):t=添加元素x到列表尾部
l=[]
for i in range(5):
l.append(i)
print(l)
# 运行结果:
[0, 1, 2, 3, 4]
3.copy():返回自身的复制(浅复制)
a=[1,2,3,4,5]
b=a.copy()#说明一下复制后内容相同但指向的位置不同(即修改a的值b的值不会改变)
print(b)
#运行结果
[1, 2, 3, 4, 5]
4.extend(x):添加列表x中的元素到尾部
a=[1,2,3,4,5]
b=['ok',100]
a.extend(b)
print(a)
#运行结果
[1, 2, 3, 4, 5, 'ok', 100]
5.index(x):查找x,返回第一次出现的下标,找不到则引发异常
其实index有三个参数index(x,beg,end):x为要查找的序列(列表,元组,字符串),beg为起始范围(默认为0),end为终止范围(默认为序列的长度)。
a=[1,2,'小李',3,4,5,'小李',7]
print(a.index('小李'))
print(a.index('小李',3,8))#index(x,i,j):查找下标范围是从i到j-1
print(a.index('小李',0,3))
#运行结果
2
6
2
6.insert(x,i):将元素x插入到下标i处
a=[1,2,'小李',3,4,5,'小李',7]
a.insert(2,100)#原来在这个位置上的元素及其后面所有的元素都向后移动一位
print(a)
运行结果
[1, 2, 100, '小李', 3, 4, 5, '小李', 7]
7.pop(i):删除并返回下标为i的元素,若i为空则删除最后一个元素
a=[1,2,'小李',3,4,5,'小李',7]
print(a)
b=a.pop()
c=a.pop(2)
print(b)
print(c)
print(a)
运行结果
[1, 2, '小李', 3, 4, 5, '小李', 7]
7
小李
[1, 2, 3, 4, 5, '小李']
8.remove(x):删除元素x,如果有多个x,只删除第一个。若x不存在,则引发异常
a=[1,2,'小李',3,4,5,'小李',7]
a.remove(1)
print(a)
a.remove('小李')
print(a)
a.remove('小李')
print(a)
运行结果:
[2, '小李', 3, 4, 5, '小李', 7]
[2, 3, 4, 5, '小李', 7]
[2, 3, 4, 5, 7]
#在这多嘴一句要想删除一个列表中的所有指定元素用下列这种用法
b=[1,2,3,3,3,5]
print(b)
b=[i for i in b if i!=3]
print(b)
运行结果:
[1, 2, 3, 3, 3, 5]
[1, 2, 5]
9.reverse():将列表逆序
a=[1,2,'小李',3,4,5,'小李',7]
a.reverse()
print(a)
运行结果:
[7, '小李', 5, 4, 3, '小李', 2, 1]
10.sort:排序
我们先简单点说就只说升降序,想详细了解小伙伴请查看博主的专门关于sort,sorted函数的排法
a=[3,4,5,1,6,2]
a.sort()#默认是升序
print(a)
a.sort(reverse=True)#升序
print(a)
运行结果:
[1, 2, 3, 4, 5, 6]
[6, 5, 4, 3, 2, 1]
6.列表生成式:
a=[x*x for x in range(5)]
print(a)
b=[x*x for x in range(5) if x%2==0]
print(b)
c=[m+n for m in 'abc' for n in 'abc']
print(c)
d=[[m+n for m in 'abc'] for n in 'abc']
print(d)
运行结果:
[0, 4, 16]
['aa', 'ab', 'ac', 'ba', 'bb', 'bc', 'ca', 'cb', 'cc']
[['aa', 'ba', 'ca'], ['ab', 'bb', 'cb'], ['ac', 'bc', 'cc']]