Python--list常用方法

1.len()

求列表的长度,即列表元素个数

>>>a = [1, 2, 3, 4]
>>>len(a)
4

2.count(value)

value: 需要统计的元素
统计列表里某个元素的个数, 如果元素不存在,则返回0

>>>a = ['s', 'u', 'n', 's', 'o', 'n', 'g']
>>>a.count('s')
2
>>>a.count('p')
0

3.append(value)

value: 需要添加的元素
添加元素到列表尾部

>>>a = []
>>>a.append("shanghai")
>>>a
["shanghai"]
>>>a.append("beijing")
>>>a
["shanghai", "beijing"]

4.pop(index=None)

index: 需要删除元素的下标, 默认是最后一个
删除并返回指定下标位置的元素,默认是最后一个,如果列表为空,或者下标不在范围内,将会抛出IndexError异常

>>>a = [1, 2, 3, 4, 5]
>>>a.pop()
5
>>>a
[1, 2, 3, 4]
>>>a.pop(1)
2
>>>a
[1, 3, 4]
>>>a.pop(5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: pop index out of range

5.clear()

清空列表

>>>a = [1, 2, 3]
>>>a.clear
>>>a
[]

6.remove(value)

value: 需要删除的元素
删除第一次在列表中出现的元素(注意:如果存在重复的元素,只会删除第一次出现的),如果元素不存在,将会抛出ValueError异常

>>>a = [1, 2, 3, 1]
>>>a.remove(1)
>>>a
[2, 3, 1]
>>>a.remove(2)
>>>a
[3, 1]
>>>a.remove(4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

7.insert(index, p_object)

index: 需要插入的位置,支持负数下标
p_object: 插入的元素
向列表指定位置插入元素,如果该位置小于0并且与列表长度的和小于0,就会默认在首部插入,如果大于列表长度,默认在尾部插入

>>>a = [4,5]
>>>a.insert(1, 3)
>>>a
[4, 3, 5]
>>>a.insert(0, 2)
>>>a
[2, 4, 3, 5]
>>>a.insert(-1, 1)
>>>a
[2, 4, 3, 51]
>>>a.insert(10, 6)
>>>a
[1, 2, 4, 3, 5, 6]

8.extend(iterable)

iterable: 一个可迭代对象
将iterable中的每一个元素依次添加到尾部,如果元素不可迭代,将抛出TypeError异常,注意:与append()方法的区别,append()是将整个元素添加到尾部,也不要求元素必须可迭代

>>>a = [1, 2, 3]
>>>a.extend([4, 5])
>>>a
[1, 2, 3, 4, 5]
>>>a.extend("678")
>>>a
[1, 2, 3, 4, 5, '6', '7', '8']
>>>a.extend(9)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable

9.index(value, start=None, stop=None)

value: 需要查找下标的元素
start: 查找范围的开始位置
stop: 查找范围的结束位置(stop-1)
返回元素第一次出现在列表中的位置,如果元素不存在,则抛出ValueError异常
如果只传一个参数,那么范围就是整个列表
如果只传两个参数,那么范围就是从第二个参数的位置开始到尾部

>>>a = [1, 2, 3, 4, 5, 1, 2, 6, 7]
>>>a.index(1)
0
>>>a.index(1, 1)
5
>>>a.index(2, 1, 7)
1
>>>a.index(2, 2, 7)
6
>>>a.index(2, 2, 6)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 2 is not in list

10.copy()

返回一个列表的浅拷贝
列表的浅拷贝就是:开辟一块新的内存,存在列表的副本,所以这两个列表id肯定不一样。但是副本列表里的元素还是对原来元素的引用,这意味着如果列表元素是不可变对象的话,修改原列表元素,并不会改变副本中对应的元素,但是如果列表元素是可变对象的话,修改原列表元素,会影响副本中对应的元素

>>>a = [1, [2, 3]]
>>>b = a.copy()
>>>b
[1, [2, 3]]
>>>id(a) == id(b)
False
>>>a[0] = 0
>>>a
[0, [2, 3]]
>>>b
[1, [2, 3]]
>>>a[1].append(4)
>>>a
[0, [2, 3, 4]]
>>>b
[1, [2, 3, 4]]

一定要注意哦

11.sort(key=None, reverse=False)

列表排序,只会对原列表操作,并不会产生新列表
key: 一般是一个lambda函数,只接受一个参数,该函数将每一个元素作为参数 ,然后根据返回值进行排序,
reverse: 排序规则,reverse = True 降序, reverse = False 升序(默认)。

>>>a = [1, 7, 9, 2, 4]
>>>a.sort()
>>>a
[1, 2, 4, 7, 9]
>>>a.sort(reverse=True)
>>>a
[9, 7, 4, 2, 1]
>>>a = [{"name": "zhangsan", "age": 18}, {"name": "lisi", "age": 15}, {"name": "wangermaizi", "age": 17}]
>>>a.sort(key=lambda x: x["age"])
>>>a
[{"name": "lisi", "age": 15}, {"name": "wangermaizi", "age": 17}, {"name": "zhangsan", "age": 18}]

12.reverse()

将列表元素全部逆序,只对原列表操作,也不会产生新列表
注意:这不是排序,只是将列表元素全部反过来

>>>a = [1, 6, 2, 5]
>>>a.reverse()
>>>a
[5, 2, 6, 1]

猜你喜欢

转载自blog.csdn.net/weixin_42237702/article/details/100177309