列表的添加\删除元素\排序的多种方法
1、添加元素
append函数, 在列表尾部增加元素,将一个对象添加
a = [1, 2, 3, 4]
a.append(5)
print(a)# [1, 2, 3, 4, 5]
extend函数, 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表),将一个序列添加
a = [1, 2, 3, 4]
a.extend([7,8])
print(a)# [1, 2, 3, 4, 7, 8]
insert函数,在列表指定位置插入元素
a = [1, 2, 3, 4]
a.insert(1,6)
print(a)# [1, 6, 2, 3, 4]
+加号,会返回到一个新的lie对象
a=[1,2,3]
b=[4,5]
print(a+b)# [1, 2, 3, 4, 5]
比较:append,insert,extend修改了原数据对象,+需要创建新的列表对象,从而需要消耗额外的内存。insert函数会将插入位置及之后所有元素拷贝、重新复制,因此效率不高。尽可能使用append函数。
2、删除元素
del函数,删除指定位置的元素
a = [1, 2, 3, 4]
del a[0]
print(a)# [2, 3, 4]
remove函数,移除列表中某个值的第一个匹配项
a = [1, 2, 3, 4]
a.remove(2)
print(a)# [1, 3, 4]
pop函数,移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
a = [1, 2, 3, 4]
a.pop(-1)
print(a)# [1, 2, 3]
3、排序
reverse函数,反向列表中元素
a = [3, 2, 5, 4]
a.reverse()
print(a) # [4, 5, 2, 3]
reversed函数,返回逆序迭代对象
a = [3, 2, 5, 4]
print(list(reversed(a)))
sort函数,对列表进行升序或者降序排列
a = [3, 2, 5, 4]
a.sort(reverse=True)# True:降序,False:升序(默认)
print(a) # [5, 4, 3, 2]
sorted,可以对所有可迭代的对象进行排序操作-sorted(iterable[, cmp[, key[, reverse]]]),reverse = True 降序 , reverse = False 升序(默认)
a = [3, 2, 5, 4]
print(sorted(a)) # [2, 3, 4, 5]
切片逆序
a = [3, 2, 5, 4]
print(a[::-1]) # [4, 5, 2, 3]
random的shuffle函数,乱序排列
import random
a = [3, 2, 5, 4]
random.shuffle(a)
print(a)
比较:reverse函数,节省内存,因为不需要重新申请空间来保存最后的结果,坏处是修改了原来的数据;切片操作,会另外创建副本保存列表的所有元素,需要更多的内存空间,但是可读性不会;reversed,将列表逆序的结果存储到迭代器里面,这种方式不会改变原来的列表,也不会创建原来列表的完整副本,只会多出迭代器对象所占的空间,相对来说也比较高效。