列表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']

 

posted @ 2019-05-06 22:44  没尾巴的熊  阅读(1224)  评论(0编辑  收藏  举报