(三)序列
列表元素的增加和删除
增加和删除都会对内存做修改,尽量在列表尾部增添元素,避免效率低。
增加
+运算符操作
地址会变,创建了新的对象。
>>> a = [20, 40, 89]
>>> id(a)
2882861325192
>>> a = a + [78]
>>> a
[20, 40, 89, 78]
>>> id(a)
2882868061896
append()方法
地址不变,原地操作,不创建新的对象。
>>> a = [20, 40, 89, 78]
>>> id(a)
2882868061896
>>> a.append(67)
>>> a
[20, 40, 89, 78, 67]
>>> id(a)
2882868061896
extend()方法
地址不变,原地操作,不创建新的对象。两个列表组合推荐用extend(),效率较高。
>>> a = [20, 40, 89, 78, 67]
>>> id(a)
2882868061896
>>> a.extend([20,39])
>>> a
[20, 40, 89, 78, 67, 20, 39]
>>> id(a)
2882868061896
注意:a.extend(20)
是错误写法,a.append(20)
是正确写法
insert()插入
将指定的元素插入对应的位置。会让插入位置后面所有元素进行移动,影响处理速度。大量元素尽量避免使用。
>>> a = [10,20,30,40]
>>> a.insert(2,100)
>>> a
[10, 20, 100, 30, 40]
删除
del()删除
地址不变。
>>> A = [111,222,333,444,555]
>>> id(A)
1994198197768
>>> del A[2]
>>> A
[111, 222, 444, 555]
>>> id(A)
1994198197768
pop()方法
删除某个元素并且返回。
默认弹出最后一个元素
>>> a = [11,22,33,44,55]
>>> b = a.pop()
>>> b
55
也可以是指定位置的元素
>>> a
[11, 22, 33, 44]
>>> a.pop(1)
22
>>> a
[11, 33, 44]
remove()方法
删除首次出现的指定元素,若不存在该元素抛出异常。
>>> a = ["a",234,"68gi","biwedch",234,"68gi"]
>>> a
['a', 234, '68gi', 'biwedch', 234, '68gi']
>>> a.remove("68gi")
>>> a
['a', 234, 'biwedch', 234, '68gi']
>>> a.remove("cabisbu")
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
a.remove("cabisbu")
ValueError: list.remove(x): x not in list
元组
元组是不可变序列,其他内容与列表相似。