一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第10天,点击查看活动详情。
0 环境
- 编辑器:idea
- 系统版本:win10
- python版本:3.9.6
1 增加
1 列表插入(insert)
在第n个索引前插入值。
def insert_demo():
a = [1,2,3]
print("前:", a)
a.insert(1, 12)
print("后:", a)
2 列表追加(append)
append在原列表(这里的意思是:影响原先的列表,直接将元素添加进入,而不是自己新建列表,在添加。)里新增元素,新增规则:直接在列表的最后添加一位,可以称之为追加。
def append_demo():
a = [1,2,3]
print("前:", a)
a.append(12)
print("后:", a)
上边两种添加值对比: append时间复杂度:O(1)。 insert时间复杂度:O(n)。 如无特殊需求,请用列表追加。
3 列表extend
将可迭代对象追加到原列表的末尾。这里和append是有区别的,append只接收值,而extend把可迭代对象里的每个元素循环追加到列表中(分解成一个个值,追加到原列表的末尾)。 区别:
- append:操作单个值
- extend:操作可迭代对象
extend类比:
for i in 待传入列表:
列表.append(i)
extend新拆分列表,重新追加原列表中。append直接将列表当成值,不作处理,直接追加进去。
def extend_demo():
a = [1,2,3]
extend = [4,5,6]
a.extend(extend)
print(a)
b = [11,12,13]
b.append([14,15,16])
print(b)
4 列表 + 列表(列表连接)
两个列表(不会被修改)相加得出(生成新的)返回值(新的列表)。为啥可以,列表也是对象,它可以调用__add__方法
def list_add_demo():
a = [1,2,3]
b = [4,5,6]
c = a + b
print("a ==>", a)
print("b ==>", b)
print("c ==>", c)
2 总结
首先想想增加的方式,单个值的添加,追加 --> 列表尾追加,插入 --> 故名思意,插在哪个索引里。新列表(多个值)的添加,用extend,新列表拆分成一个个元素挨个追加到原列表末尾,若是不想改动原列表,直接相加。