目录
描述
列表方法extend()可以将一个序列合并到另一个列表中。
语法和参数
list.extend(sequence)
名称 | 含义 | 备注 |
sequence | 要并入的序列 | 不可省略的参数,可以是列表、元组等序列 |
返回值
None。即list.extend()方法没有返回值,其作用于list本身。
使用示例
1、合并列表
>>> my_list = ["master", "identidy", "compute", "storage"]
>>> new_list = ["storage", "alert", "monitor", "database"]
>>>
>>> my_list.extend(new_list)
>>> my_list
['master', 'identidy', 'compute', 'storage', 'storage', 'alert', 'monitor', 'database']
可以看到,new_list列表中的元素合并到了my_list列表中,成为了my_list列表的元素。
2、合并元组
extend()方法可以将一个元组合并到一个列表中:
>>> my_list = []
>>> my_tuple = (3, 6, 9)
>>> my_list.extend(my_tuple)
>>> my_list
[3, 6, 9]
3、合并集合
同元组一样,extend()方法也可以将一个集合合并到一个列表中:
>>> my_list = ["python"]
>>> my_set = {"python", "java", "c", "html", "css", "go"}
>>> my_list.extend(my_set)
>>> my_list
['python', 'python', 'go', 'html', 'c', 'java', 'css']
4、合并字典
extend()方法也可以将一个字典合并到列表中,但是只能将字典的key合入:
>>> my_list = ["China"]
>>> my_dict = {"Japan": "Tokyo"}
>>> my_list.extend(my_dict)
>>> my_list
['China', 'Japan']
如果想合入字典的value,可以借助dict.values()方法:
>>> my_list = ["China"]
>>> my_dict = {"Japan": "Tokyo"}
>>> my_list.extend(my_dict.values())
>>> my_list
['China', 'Tokyo']
5、合并字符串
当要合并的参数是字符串时,extend认为字符串为一个序列,将字符串中的每一个字符作为一项元素添加到列表中:
>>> demo_list = ["China"]
>>> demo_list.extend("Cuba")
>>> demo_list
['China', 'C', 'u', 'b', 'a']
如果希望将整个字符串作为一个元素添加到列表中,应该使用 列表方法append() 。
6、合并其它可迭代序列
extend()方法可以将其它可迭代序列直接合入到列表中:
if __name__ == '__main__':
my_list = ["magic keyboard"]
my_range = range(3)
my_list.extend(my_range)
print(my_list)
mp = map(int, (3.69, 4.23))
my_list.extend(mp)
print(my_list)
运行结果:
['magic keyboard', 0, 1, 2]
['magic keyboard', 0, 1, 2, 3, 4]
注意事项
1、extend & append
extend与append均为列表方法,两者的功能相似:extend()将一个序列合并到列表中,append()将一个元素添加到列表中。但是两者的区别在于extend是合并,而append()是添加:
举个例子🌰:
先来看看append:
if __name__ == '__main__':
city = ["北京", "上海", "广州", "深圳"]
other_city = ["杭州", "青岛", "西安", "成都"]
city.append(other_city)
print("-" * 30 + " append " + "-" * 30)
print("city: ", city)
print("city length:", len(city))
运行结果:
------------------------------ append ------------------------------
city: ['北京', '上海', '广州', '深圳', ['杭州', '青岛', '西安', '成都']]
city length: 5
list.append()方法将整个列表other_city作为一个元素添加到了原来的列表city中。append后city长度为5
接下来是extend:
if __name__ == '__main__':
city = ["北京", "上海", "广州", "深圳"]
other_city = ["杭州", "青岛", "西安", "成都"]
city.extend(other_city)
print("-" * 30 + " extend " + "-" * 30)
print("city: ", city)
print("city length:", len(city))
运行结果:
------------------------------ extend ------------------------------
city: ['北京', '上海', '广州', '深圳', '杭州', '青岛', '西安', '成都']
city length: 8
list.extend()方法将整个列表other_city的子元素合并到了原列表city中。extend后city长度为8。
2、extend添加不可迭代序列
使用extend()添加不可迭代对象(例如整型int)时会抛出TypeError异常。
>>> demo_list.extend(5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
3、可以使用extend合并自己
>>> demo_list = ["python"]
>>> demo_list.extend(demo_list)
>>> demo_list
['python', 'python']