在初始化列表之后我们要进一步对列表进行操作。
list_test = [1, 2, 3, 4 ,5]
获取索引下的值(如果你的索引为负将从后向前计数)
list: [1 2 3 4 5]
正索引 0 1 2 3 4
负索引 -5 -4 -3 -2 -1
# first_ele = 1 last_ele = 5
first_ele = list_test[0]
last_ele = list_test[-1]
list.append(x):列表新增元素
#[1, 2, 3, 4, 5, 6]
list_test.apprend(6)
list.insert(i, x):向指定位置插入元素 i为索引,x为新值
#[1, 2, 6, 3, 4, 5]
list_test.insert(2, 6)
list.remove(x):删除指定元素 当有多个相同元素时删除第一个
#[1, 2, 4, 5]
list_test.remove(3)
删除所有指定元素:
#删除列表中所有2
while 2 in list_test:
list_test.remove(2)
这里用到了in,会判断2 是否在列表(list_test)中,在就删除,然后继续判断,之道不在则跳出循环。
切忌使用以下方法删除所有指定元素:for i in range(len(list_test)):
if i == 2:
list_test.remove(2)
原因,此方法会导致漏删问题,还会有数组越界问题,虽然一般不会这么写,但在遇到删除列表等问题时需要考虑以上情况。
list.clear():清空列表
list.pop(x):删除列表最后一个值并返回这个值
x为索引,默认弹出弹出最后一个元素
#ele = 5 list_test = [1, 2, 3, 4]
ele = list_test.pop()
#ele = 5 list_test = [2, 3, 4, 5]
ele = list_test.pop(0)
利用apprend 和 pop方法我们可以实现栈(stack)的功能
list.count(x):计算指定元素在列表中的个数
以下方法同样可以实现删除全部指定元素
nb = list_test.count(2)
for i in range(nb):
list_test.remove(2)
list.reverse():反置列表
#[5, 4, 3, 2, 1]
list_test.reverse()
list.sort(key=None, reverse=False) : 排序
key : 这里可以自定义函数用于复杂排序(比如多种排序规则),但由于目前为基础操作,先不进行介绍,如果了解过OCAML这个函数式语言对此会有所了解,等于把一个函数作为参数
reverse = True 降序, reverse = False 升序(默认)。
list.copy():复制此列表
这里的复制方法为浅层复制,也就是说如果你这个列表中储存的元素仍为列表将会有一些问题,这些问题会在接下来介绍
#listcopy = [1, 2, 3, 4, 5]
#list_test = [1, 2, 3, 4, 5]
listcopy = list_test.copy()