列表list常用方法
1、len:计算列表的长度
numb = ['中国',1,2,[3,4],(5,6)]
len(numb) # 返回5 len函数只计算最外面一层列表的元素数,对于内嵌的元素不能计算,如果有需要可以自己定义函数计算
2、count:查看列表中某个元素出现的次数并返回
numb = ['中国',1,2,[3,4],(5,6)]
numb.count("中国")# 返回1,元素“中国”在numb列表中出现了一次
3、index: 查看某元素第一次出现在列表中的位置
num = [1,1,2]
num.index(1)# 返回0,index只返回了第一个1出现在列表中的位置
4、in 检查元素成员资格
num = [1,'1',2]
1 in num #返回True,如果元素存在列表中,则返回true,不在则返回false,是一个布尔函数,tuple和string同样适用
5、append :在列表末尾添加元素,改变了原列表
>>>numb=['3', 'c', 5, '美', '中', 3, 1]
>>> numb.append([1,2,3])
>>> numb
['3', 'c', 5, '美', '中', 3, 1, [1, 2, 3]]
6、extend():这个函数是连接两个列表成一个列表,没有返回值,也会改变原列表;+也可以连接两个列表但是不会改变原表,连接后的新列表需要赋值给一个新的变量
>>> a = [1,2,3]
>>>c = ['a','b',(1,1)]
>>>a.extend(c)
>>> a
[1, 2, 3, 'a', 'b', (1, 1)]
7、insert (index,item):在列表中index位置插入item,index为要插入的下标位置,item是插入的内容,改变原表,没有返回值
>>> numb
[1, 3, '中', '美', 5, 'c', '3']
>>> numb.insert(2,3)
>>> numb
[1, 3, 3, '中', '美', 5, 'c', '3']
8、pop(index):删除列表中的某个元素(index参数为下标值,从0开始),并将该元素返回,默认删除最后一个元素并返回最后一个元素,这个函数会改变原函数
>>>numb=['3', 'c', 5, '美', '中', 3, 1]
>>> numb.pop()
[1, 2, 3]
>>> numb
['3', 'c', 5, '美', '中', 3, 1]
#删除列表第一个元素
>>> numb.pop(0)
'3'
>>> numb
['c', 5, '美', '中', 3, 1]
9、remove(item):移除列表中第一个出现的item,不返回值,改变原表
>>> c = ['a', 'b', (1, 1),'a']
>>> c.remove('a')
>>> c
['b', (1, 1), 'a']
10、reverse(),反向输入列表,改变原表,没有返回值
>>> c=['b', (1, 1), 'a']
>>> c.reverse()
>>> c
['a', (1, 1), 'b']
11、sort(key,reverse):对列表进行排序,默认对同类型数据升序排列,key默认none,reverse默认false,也可以指定key值和reverse值进行排序,会改变原表,没有返回值
>>> cc = ['a','c','b']
>>> cc.sort()
>>> cc
['a', 'b', 'c']
#不同类型的元素进行排序会报错
>>> c=['a', (1, 1), 'b']
>>> cc.sort()
Traceback (most recent call last):
File "<pyshell#85>", line 1, in <module>
c.sort()
TypeError: '<' not supported between instances of 'tuple' and 'str'
# key值排序,sort对同类型数据排序,这里面len计算每个item的长度,根据长度len排序,len返回int型数据,也是同类型的排序
>>> c=['a', (1, 1), 'b']
>>> c.sort(key=len)
>>> c
['a', 'b', (1, 1)]
>>> c.sort(key = len, reverse=True)# reverse=true,是指要反向排序
>>> c
[(1, 1), 'a', 'b']
12、sorted(list)默认对列表进行升序排列,key,reverse同样适用sorted,sorted返回列表,不会改变原表
>>> list1 = ['a','f','e']
>>> sorted(list1)
['a', 'e', 'f']
>>> list1
['a', 'f', 'e']
#####想排序原表的副本,又不改变原表的话用sorted()函数最好,也可以用分片法[:]复制原表,再排序
a
b=a[:]
b.sort()
但是没有sorted()适用方便
注意:b=a,并不是复制了a,只用a,b同时指向了一个内存地址,如果用b=a,b.sort(),也是会改变内存地址里的内容。
13、切片改变列表,改变了原列表
##替换列表里的值
>>> numb=[2, 2, 3, 4, 5, 6, 7]
>>> numb[1:]=list('python')#从下标1到最后的元素都被list(‘python’)替换
>>> numb
[2, 'p', 'y', 't', 'h', 'o', 'n']
## 插入列表元素
>>> numb[1:1]=list('123')
>>> numb
[2, '1', '2', '3', 'p', 'y', 't', 'h', 'o', 'n']
##删除列表元素(就是用空列表[]替换列表里的元素)
>>> numb[4:]=list('')#也可以写成[]
>>> numb
[2, '1', '2', '3']
##负值切片替换
>>> numb2=['1', '2', '3']
>>> numb2[-3:-1]=[1,2,3,4,5,6]
>>> numb2
[1, 2, 3, 4, 5, 6, '3']
###step为负值,切片替换
>>> numb=[1, 'a', 3, 'b', 5, 'c', '3']
>>> numb[-4:-7:-2]=list('中国')###切片取出的个数要与替换的元素个数一致,否则报错,step为负值时,右边的元素要比左边的元素先出现
>>> numb
[1, '国', 3, '中', 5, 'c', '3']