Python列表操作中extend和append的区别

1.用法

append()用于在列表末尾添加新的对象,输入参数为对象;

extend()用于在列表末尾追加另一个序列中的多个值,输入对象为元素队列;

2.相同点

两个都是对列表即list进行的操作
具体句法可以写为:

list1.append(obj)  # list1在使用时更改为你想要添加新的对象的列表名,obj为输入对象
list2.extend(seq) # list2在使用时更改为想要追加元素序列的列表名,seq为元素序列

3.区别

如上所述,append是在列表末尾增加新的对象,这个对象可以是列表,并且是列表本身;而extend是在列表末尾增加新的元素序列,这个序列是列表中具体的元素,而非列表本身

4.举例

下面举一个例子来进行直观上的说明

list1 = [1, 2]
list2 = [3, 4]
list3 = [1, 2]
list1.append(list2) # 追加新对象
print(list1)
list3.extend(list2) # 追加新元素序列
print(list3)

下面注意从输出结果的不同来进行理解

[1, 2, [3, 4]] # append的输出结果
[1, 2, 3, 4] # extend的输出结果

注意到extend相当于将输入对象(此处是列表,还可以是字符串或字典)等拆开加入到新的列表中
但要注意字典是比较特殊的,他在用extend时,加入的默认为‘’key‘‘,而在用append时,是整个加入的

list1 = [1, 2]
list2 = [1, 2]
list1.extend({'zhangsan': 18, 'lisi': 22}) # 字典(默认key)
print(list1)
list2.append({'zhangsan': 18, 'lisi': 22})
print(list2)

这时extend输出结果为仅将“alice”和“amy”加入到list1中,attend输出结果为追加一个字典

# output
[1, 2, 'zhangsan', 'lisi'] # extend
[1, 2, {'zhangsan': 18, 'lisi': 22}] # append

你可能感兴趣的:(python,list,python)