字符串取数据需要下标一个个数进行取值,会比较麻烦,相对的话列表取值就比较方便,以下介绍列表常用的增删改查,以及列表之间的合并和元素的排序等:
增加:append()方法给列表从最末尾添加值
insert()方法指定位置添加元素
删除:pop()方法默认删除最后一个元素,也可以传值,删除指定的元素
clear()清空列表所有元素
del 变量名[下标]删除指定位置的元素也可以删除可变变量和不可变变量
remove(元素)删除列表中的元素
修改:通过下标修改列表中的值
查看:可采用下标取值的方式,查看具体下标对应的元素
index方法查找相应元素的对应的下标
列表合并:用+号将两个列表的内容加起来,原列表的值没有变,会成为一个新的列表
Extend()把一个列表里的值加到另一个列表里,没有生成一个新的列表
元素排序:sort()默认是升续,指定指定reverse=True就是降序
元素数统计:count()查看一个元素在列表里的次数
1.列表的定义
变量名=[元素,元素,元素…]
2.列表取值 --同字符串取值一样
下标取值的格式:
变量名[X] X为第几个元素
变量名[X:Y] X为从第几个元素开始,Y为从第几个元素结束
变量名[-1] 取最后一个元素
names=[1,2,3,'MLing','zhang']
print(names[3])
print(names[0:4])
返回结果:
MLing
[1, 2, 3, 'MLing']
3.列表循环—同字符串取值一样
names=[1,2,3,'MLing','zhang']
for i in names:
print (i)
返回结果:
1
2
3
MLing
zhang
4.修改列表中的值
因为列表是可变的变量,所以可通过下边修改列表中的值,如下:
names=[1,2,3,'MLing','zhang']
names[3]='YLing'
print (names)
返回结果:
[1, 2, 3, 'YLing', 'zhang']
5.增加列表中的元素
1) append()方法给列表从最末尾添加值
names=[1,2,3,'MLing']
names.append('liujia')
print (names)
返回结果:
[1, 2, 3, 'MLing', 'liujia']
2) insert()指定位置添加元素
names=[1,2,3,'MLing']
names.insert(0,'li')
print (names)
返回结果:
['li', 1, 2, 3, 'MLing']
如果输入的下标不存在,会在最后一个位置插入
names.insert(100,'li')
返回结果:
[ 1, 2, 3, 'li']
6.删除列表中的元素
1) pop()方法默认删除最后一个元素,也可以传值,删除指定的元素
不指定:
names=[1,2,3,'MLing']
names.pop()
print (names)
返回结果:
[1, 2, 3]
指定:
names=[1,2,3,'MLing']
names.pop(1) #删除第二个元素
print (names)
返回结果:
[1, 3, 'MLing']
2) clear()清空列表所有元素
names=[1,2,3,'MLing']
names.clear()
print (names)
返回结果:
[]
3) del 变量名[下标]删除指定位置的元素
names=[1,2,3,'MLing']
del names[1]
print (names)
返回结果:
[1, 3, 'MLing']
注意del和pop的区别是:pop可以不指定列表的下标默认删除最末尾的元素,也可以指定下标,删除具体的值,可del是只可以进行指定删除的,当不指定的时候,会报错的,del也可以直接删除变量或者列表
del和pop的相同点是:传的下标一定是存在的,如果不存在的话,是都会报错的
4) remove(元素)删除列表中的元素
names=[1,2,3,'MLing']
names.remove(2)
names.remove('MLing')
print (names)
返回结果:
[1, 3]
注意remove和pop的区别是:remove是直接输入要删除的元素,pop则是输入要删除的元素的下标,并且remove()中的内容不可为空,一次只能删除一个下标对应的元素,pop()可以为空,默认删除最末尾的元素
注意在列表的操作函数中只有pop()是有返回值得,删除谁就会把谁给返回了,可以用一个变量来接收它
7.count()查看一个元素在列表里的次数
找不到的话不会报错,返回0,可以判断元素重复count()>0就是重复,当然也可以用in判断元素在不在列表里面
names=[1,2,3,'MLing','MLing','MLing']
i=names.count('MLing')
print (i)
返回结果:
3
8.index方法返回查找元素的下标
如果有多个的话,返回第一个,没有的话会报错:
格式为:indrx(元素,X,Y)
元素为需要查找的元素
X代码的是下标,表示从哪里开始找
Y 代码的也是下标,表示从哪里结束
names=[1,2,3,'MLing','MLing','MLing']
print (names.index("MLing"))
print (names.index("MLing",5)) #代表从第5个下标开始找
print (names.index("MLing",3,5)) #代表从第3个下标开始找,到第5个下标结束
# print (names.index("MLing",0,2)) 该范围内没有,执行的话会报错
返回结果:
3
5
3
如果列表中有重复的元素,就会返回第一个查到的元素的下标
9.两个列表可以合并
1) 用+号将两个列表的内容加起来,原列表的值没有变,会成为一个新的列表
names=[1,2,3,'MLing']
stus=['zhang','li']
print("汇总:",stus+names)
print("names:",names)
print("stus:",stus)
返回结果:
汇总: ['zhang', 'li', 1, 2, 3, 'MLing']
names: [1, 2, 3, 'MLing']
stus: ['zhang', 'li']
2) Extend()把一个列表里的值加到另一个列表里,没有生成一个新的列表
names=[1,2,3,'MLing']
stus=['zhang','li']
stus.extend(names) #把names列表里的元素加到stus里
print("汇总:",stus)
print("names:",names)
print("stus:",stus)
返回结果:
汇总: ['zhang', 'li', 1, 2, 3, 'MLing']
names: [1, 2, 3, 'MLing']
stus: ['zhang', 'li', 1, 2, 3, 'MLing']
10.排序sort()
默认是升续,指定指定reverse=True就是降序
one=[1,22,234,4354,35345,765]
one.sort()
print("升序",one) #默认升续
one.sort(reverse=True)
print("降序",one) #降序排列
返回结果:
升序 [1, 22, 234, 765, 4354, 35345]
降序 [35345, 4354, 765, 234, 22, 1]
11.Revers方法反转列表中的数据:
one=[1,22,234,4354,35345,765]
print("降序",one.reverse())
print(one)
返回结果:
降序 None
[765, 35345, 4354, 234, 22, 1]
注意one.reverse()返回None是因为这只是一个处理方法,只做排序,不做其他事,不进行存值得,需要单独去取值