Python 中列表的連線運算子如何工作?
在 Python 中,列表是有序序列,可以容納多種物件型別,例如整數、字元或浮點數。在其他程式語言中,列表等同於陣列。
列表的連線是一種操作,它將一個列表的元素新增到另一個列表的末尾。我們在這裡討論列表資料結構,因此我們將一個列表的元素連線到另一個列表的末尾。
在本文中,我們將向您展示如何在 Python 中連線列表。以下是在 Python 中連線列表的不同方法:
使用連線運算子(+)
使用 For 迴圈(樸素方法)
使用列表推導式
使用 extend() 方法
使用解包 * 運算子
使用 itertools.chain() 方法
假設我們已經取了一個包含一些元素的列表。我們將使用上述指定的方法返回給定兩個輸入列表的連線列表。
方法 1:使用連線運算子(+)
連線運算子(+)是 Python 中連線列表最常見的方法。如下面的示例所示,“+”運算子可以輕鬆地將整個列表連線到另一個列表後面,並將新列表作為結果輸出返回。
示例
以下程式使用(+)運算子返回給定兩個輸入列表的連線列表:
# input list_1 inputList_1 = [5, 1, 8, 7] # input list_2 inputList_2 = [10, 11, 12] # Concatenating both the lists using the + operator ConcatenatedList = inputList_1 + inputList_2 # Printing the result concatenated list print ("Concatenated list: ", ConcatenatedList)
輸出
執行上述程式將生成以下輸出:
Concatenated list: [5, 1, 8, 7, 10, 11, 12]
方法 2:使用 For 迴圈(樸素方法)
演算法(步驟)
以下是執行所需任務的演算法/步驟:
建立一個變數來儲存第一個輸入列表。
建立另一個變數來儲存第二個輸入列表。
使用 for 迴圈遍歷輸入列表_2 的每個專案。
使用append()函式(將元素新增到列表的末尾),將輸入列表_2 的每個專案附加到 inputList_1。
列印結果連線列表
示例
以下程式使用樸素方法返回給定兩個輸入列表的連線列表:
# input list_1 inputList_1 = [5, 1, 8, 7] # input list_2 inputList_2 = [10, 11, 12] # Traversing in the input list_2 for item in inputList_2 : # appending each item of input list_2 to the inputList_1 inputList_1.append(item) # Printing the result concatenated list print ("Concatenated list: ", inputList_1)
輸出
執行上述程式將生成以下輸出:
Concatenated list: [5, 1, 8, 7, 10, 11, 12]
方法 3:使用列表推導式
基於現有列表生成列表項的技術稱為列表推導式。使用列表推導式方法,您可以簡單地連線 Python 中的兩個列表。如下面的示例所示,您可以使用 for 迴圈遍歷列表元素,然後將其連線起來。
示例
以下程式使用列表推導式返回給定兩個輸入列表的連線列表:
# input list_1 inputList_1 = [5, 1, 8, 7] # input list_1 inputList_2 = [10, 11, 12] # Concatenating both lists using list comprehension concatenatedList = [y for x in [inputList_1, inputList_2] for y in x] # Printing the result concatenated list print ("Concatenated list: ", concatenatedList)
輸出
執行上述程式將生成以下輸出:
Concatenated list: [5, 1, 8, 7, 10, 11, 12]
方法 4:使用 extend() 方法
為了在 Python 中連線兩個列表,我們可以使用 extend() 函式。extend() 函式迭代給定的引數並將專案新增到列表中,從而線性擴充套件列表。
語法
list.extend(iterable)
示例
以下程式使用 extend() 方法返回給定兩個輸入列表的連線列表:
# input list_1 inputList_1 = [5, 1, 8, 7] # input list_1 inputList_2 = [10, 11, 12] # Concatenating both the lists using extend() function inputList_1.extend(inputList_2) # Printing the result concatenated list print ("Concatenated list: ", inputList_1)
輸出
Concatenated list: [5, 1, 8, 7, 10, 11, 12]
方法 5:使用解包 * 運算子
Python 中的 '*' 運算子可用於輕鬆連線兩個列表。
在 Python 中,'*' 運算子只是在索引引數處解包元素的集合。
考慮以下列表:lst = [5, 6, 7, 8]
語句 *my list 將用其元素替換索引位置處的列表。因此,它會解包專案列表。
示例
以下程式使用解包(*) 運算子返回給定兩個輸入列表的連線列表:
# input list_1 inputList_1 = [5, 1, 8, 7] # input list_1 inputList_2 = [10, 11, 12] # Concatenating inputList_2 with the inputList_1 using * operator concatenatedList = [*inputList_1, *inputList_2] # Printing the result concatenated list print ("Concatenated list: ", concatenatedList)
輸出
Concatenated list: [5, 1, 8, 7, 10, 11, 12]
前面程式碼中的程式碼行 concatenated list = [*inputList_1, *inputList_2] 按指定的順序替換專案,即 input list1 的條目在 input list2 的元素之後。它執行連線操作
方法 6:使用 itertools.chain() 方法
itertools.chain() 函式在將引數連結到一個之後返回可迭代物件,因此如果只需要初始迭代,則不需要儲存連線列表。當僅需要連線列表一次時,這非常方便。
示例
以下程式使用 itertools.chain() 函式返回給定兩個輸入列表的連線列表:
import itertools # input list_1 inputList_1 = [5, 1, 8, 7] # input list_1 inputList_2 = [10, 11, 12] # Concatenating inputList_2 with the inputList_1 # using itertools.chain() function concatenatedList = list(itertools.chain(inputList_1, inputList_2)) # Printing the result concatenated list print ("Concatenated list: ", concatenatedList)
輸出
Concatenated list: [5, 1, 8, 7, 10, 11, 12]
結論
在本文中,我們學習瞭如何使用六種不同的方法/方式連線兩個列表。我們還學習瞭如何使用列表推導式同時遍歷兩個列表。我們學習瞭如何使用 itertools 的 chain() 函式連線列表