【python】 合並列表的方法


python中利用非循環的方法將兩個List列表中的內容進行合並

在處理字符串、目錄和排序信息的時候,經常需要將兩個列表進行合並。但利用for循環逐個插入會十分繁瑣,利用下面的方法可以快速方便的進行列表內容的合並。

1.+運算直接合並

list_a = ['a','b','c']
list_b = ['d','e','f','g']
list_ab = list_a + list_b
print(list_ab)

>>> ['a', 'b', 'c', 'd', 'e', 'f', 'g']
由於列表可以保存各類對象,所以內容類型不同的列表也可以合並:

list_num = [1,2,3,4,5]
list_set = [{0},{1}]
list_dict = [{'key0':0},{'key1':1}]
list_mix = list_a + list_num + list_set + list_dict
print(list_mix)

>>> ['a', 'b', 'c', 1, 2, 3, 4, 5, set([0]), set([1]), {'key0': 0}, {'key1': 1}]

2.extend()方法

list_a = ['a','b','c']
list_b = ['d','e','f','g']
list_a.extend(list_b)
print(list_a)

>>> ['a', 'b', 'c', 'd', 'e', 'f', 'g']
這種方法直接在原有列表后加上了需要合並的新列表,擴增的原有的列表。
內存位置沒有改變,內容被擴充,可以借助id()函數來查看:

list_a = ['a','b','c']
id1 = id(list_a)
list_b = ['d','e','f','g']
list_a.extend(list_b)
id2 = id(list_a)
print(id1==id2)

>>> True

3.基於slice的插入

list_a = ['a','b','c']
list_b = ['d','e','f','g']
list_a[0:0] = list_b    #列表中[n,n],表示在列表的第n+1個位置,將對應列表逐個元素插入合並
print(list_a)
#千萬不能寫成 list_a[0] = list_b,這會使得list_a[0]變為一個列表,而不是列表內的元素。

>>> ['d', 'e', 'f', 'g', 'a', 'b', 'c']

也可以修改位置,靈活變更合並的序列在原列表中的位置:

list_a = ['a','b','c']
list_b = ['d','e','f','g']
list_a[-1:-1] = list_b    #合並至最末尾
print(list_a)

>>> ['a', 'b', 'd', 'e', 'f', 'g', 'c']

合並到第二個位置:

list_a = ['a','b','c']
list_b = ['d','e','f','g']
list_a[1:1] = list_b   #合並至第二個位置
print(list_a)

>>> ['a', 'd', 'e', 'f', 'g', 'b', 'c']


*4.“指針”/解包操作

Python >= 3.5 PEP 448中可以使用*來進行類似指針的操作:

list_a = ['a','b','c']
list_b = ['d','e','f','g']
list_ab = [*list_a,*list_b]
print(list_ab)

>>> ['a', 'b', 'c', 'd', 'e', 'f', 'g']

ref:
https://www.jdoodle.com/python3-programming-online
https://www.tutorialspoint.com/index.htm
http://www.compileonline.com/index.htm
https://www.onlinegdb.com/online_python_interpreter
https://www.python.org/dev/peps/pep-0448/
https://stackoverflow.com/questions/1720421/how-to-concatenate-two-lists-in-python
https://blog.csdn.net/ppdyhappy/article/details/53213349
https://blog.csdn.net/fragmentalice/article/details/81363494
https://www.cnblogs.com/qingyuanjushi/p/8409949.html
https://blog.csdn.net/roytao2/article/details/54180182

在這里插入圖片描述
picture from pexels.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM