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, 5,1]
>>>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]