区别总述:
① lst1.append(lst2) # 把 “整个列表lst2 作为一个元素” 添加到 lst1 中
② lst1.extend(lst2) # 把 “列表lst2中的每个元素” “依次”添加到 lst1 中
添加字典时有点特殊:
① append() 把 “整个字典dic作为一个元素” 添加到列表中
② extend()只把 “字典dic中的每个key” 添加到列表中
具体见例题
例题1
lst1 = ['jack','sparrow','is','the','captain']
lst2 = ['of','the','black pearl']
lst1.append(lst2) # 把 “整个列表lst2 作为一个元素” 添加到 lst1 中
print(lst1)
输出:['jack', 'sparrow', 'is', 'the', 'captain', ['of', 'the', 'black pearl']]
对比:
lst1 = ['jack','sparrow','is','the','captain']
lst2 = ['of','the','black pearl']
lst1.extend(lst2) # 把 “列表lst2中的每个元素” “依次”添加到lst1中
print(lst1)
输出:['jack', 'sparrow', 'is', 'the', 'captain', 'of', 'the', 'black pearl']
例题2
lst3 = [1,2,3]
lst4 = [4,5,6]
lst3.append(lst4)
print(lst3)
输出:[1, 2, 3, [4, 5, 6]]
对比:
lst3 = [1,2,3]
lst4 = [4,5,6]
lst3.extend(lst4)
print(lst3)
输出:[1, 2, 3, 4, 5, 6]
例题3
lst3 = [1,2,3]
dic = {'wang':111,'li':222,'su':333}
lst3.append(dic) # 添加字典时,append() 把“整个字典dic作为一个元素”添加到列表中
print(lst3)
输出:[1, 2, 3, {'wang': 111, 'li': 222, 'su': 333}]
对比:
lst3 = [1,2,3]
dic = {'wang':111,'li':222,'su':333}
lst3.extend(dic) # 添加字典时,extend()只把dic中的每个key添加到列表中
print(lst3)
输出:[1, 2, 3, 'wang', 'li', 'su']
例题4
# append(), extend() the difference
a = ['paths', 'classes', 'display_names']
b = ['/home/documents', 'yili', 'dis']
a.append(b) # append更快, append()作为 '一个整体(list)' 添加到末尾
a.append([b])
a.append(b[1])
a.append(b[0])
print(a)
输出: ['paths', 'classes', 'display_names', ['/home/documents', 'yili', 'dis'], [['/home/documents', 'yili', 'dis']], 'yili', '/home/documents']
对比:
a = ['paths', 'classes', 'display_names']
b = ['/home/documents', 'yili', 'dis']
a.extend(b) # extend() 是把list中的每个元素,依次,一个个添加
a.extend(b[2])
a.extend([b[2]]) # 加上[],作为一个字符串
print(a)
输出:['paths', 'classes', 'display_names', '/home/documents', 'yili', 'dis', 'd', 'i', 's', 'dis']