上节讲到列表的基本用法,这节具体讲下操作列表的函数用法。
1.添加元素
>>>x = [1,2,3]
>>>id(x) #查看对象的内存地址
50159368
>>>x.append(4) #在尾部追加元素
>>>x
[1,2,3,4]
>>>x.insert(2,0) #在指定位置插入元素,前一个参数是位置
>>>x
[1,2,0,3,4]
>>>x.extend([5,6,7]) #在尾部追加多个元素
>>>x
[1,2,0,3,4,5,6,7]
>>>id(x) #列表在内存中的地址不变
50159368
#另外用 + 和 * 也可以向列表中添加元素,不过返回的是新列表,id发生改变
>>>x = [1,2,3]
>>>id(x)
50231246
>>>x = x+[4]
>>>x
[1,2,3,4]
>>>x = x * 2
>>>x
[1,2,3,4,1,2,3,4]
>>>id(x)
50221243
2.下面说说三种删除元素的方法
>>>x = [1,2,3,4,5,6,7]
>>>x.pop() #取出并返回最后一个元素
7
>>>x.pop(0) #取出并返回第一个元素
>>>x
1
>>>x.clear() #删除所有元素
>>>x
[]
>>>x = [1,2,1,1,2]
>>>x.remove(2) #删除首个值为 2 的元素
>>>x
[1,1,1,2]
>>>del x[3] #删除指定位置的元素
>>>x
[1,1,1]
注:在列表中间位置插入或删除元素会影响后面所有元素的下标,要尽力避免在列表中间位置进行插入和删除操作。
3.count()、index()函数
列表方法count()用于返回列表中指定元素出现的次数,index()用于返回指定元素在列表中首次出现的位置,如果该元素不在则抛出异常。
>>>x = [1,2,2,3,3,3,4,4,4,4]
>>>x.count(3) #列表中元素3的个数
3
>>>x.index(2) #元素2在列表中首次出现的位置(索引)
1
>>>x.index(4)
6
>>>5 in x #判断元素 5 是否在列表 x 中
False
4.sort()、reverse() 和sorted()、reversed()
sort()和reverse()对列表进行的排序是原地排序,就是所排序后的列表代替的原列表。
>>>x = list(range(11))
>>>import random
>>>random.shuffle(x) #随机乱序
>>>x
[0,8,4,2,3,7,9,5,1,6,10]
>>>x.reverse() #逆序
>>>x
[10,6,1,5,9,7,3,2,4,8,0]
>>>x.sort() #顺序
>>>x
[0,1,2,3,4,5,6,7,8,9,10]
>>>x.sort(key=str) #转换成字符串后的大小排序
>>>x
[0,1,10,2,3,4,5,6,7,8,9]
而sorted()和reversed()这两个函数会得到新列表而不会对原列表做任何修改
>>>import random
>>>x = list(range(11))
>>>random.shuffle(x)
>>>x
[6, 2, 0, 1, 7, 9, 4, 3, 5, 10, 8]
>>>sorted(x,key=str)
[0,1,10,2,3,4,5,6,7,8,9]
>>>list(reversed(x))
[9,8,7,6,5,4,3,2,10,1,0]
>>>x #原列表 x 没有改变
[6, 2, 0, 1, 7, 9, 4, 3, 5, 10, 8]