工作生活

列表的添加\删除元素\排序的多种方法

2019-07-02  本文已影响0人  0981b16f19c7

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,将列表逆序的结果存储到迭代器里面,这种方式不会改变原来的列表,也不会创建原来列表的完整副本,只会多出迭代器对象所占的空间,相对来说也比较高效。

上一篇下一篇

猜你喜欢

热点阅读