Python list extend()方法

目錄

描述

語法和參數

返回值

使用示例

1、合併列表

2、合併元組

3、合併集合

4、合併字典

5、合併字符串

6、合併其它可迭代序列

注意事項

1、extend & append

2、extend添加不可迭代序列

3、可以使用extend合併自己


 

描述

列表方法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']

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章