📜  在Python中连接两个列表的方法

📅  最后修改于: 2022-05-13 01:54:22.333000             🧑  作者: Mango

在Python中连接两个列表的方法

让我们看看如何在Python中使用不同的方法连接两个列表。当我们有许多需要以类似方式处理的元素列表时,此操作很有用。

方法#1:使用朴素方法

在此方法中,我们遍历第二个列表并继续在第一个列表中追加元素,因此第一个列表将包含两个列表中的所有元素,因此将执行追加。

# Python3 code to demonstrate list
# concatenation using naive method 
  
# Initializing lists
test_list1 = [1, 4, 5, 6, 5]
test_list2 = [3, 5, 7, 2, 5]
  
# using naive method to concat
for i in test_list2 :
    test_list1.append(i)
  
# Printing concatenated list
print ("Concatenated list using naive method : " 
                              + str(test_list1))
输出:
Concatenated list using naive method : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]


方法 #2:使用 +运算符

执行列表连接的最常规方法,使用“+”运算符可以轻松地将一个列表的整个添加到另一个列表的后面,从而执行连接。

# Python 3 code to demonstrate list
# concatenation using + operator 
  
# Initializing lists
test_list3 = [1, 4, 5, 6, 5]
test_list4 = [3, 5, 7, 2, 5]
  
# using + operator to concat
test_list3 = test_list3 + test_list4
  
# Printing concatenated list
print ("Concatenated list using + : "
                   + str(test_list3))
输出:
Concatenated list using + : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]

方法#3:使用列表推导

列表推导也可以完成列表连接的任务。在这种情况下,会创建一个新列表,但此方法是上面讨论的循环方法的一种替代方法。

# Python3 code to demonstrate list
# concatenation using list comprehension 
  
# Initializing lists
test_list1 = [1, 4, 5, 6, 5]
test_list2 = [3, 5, 7, 2, 5]
  
# using list comprehension to concat
res_list = [y for x in [test_list1, test_list2] for y in x]
  
# Printing concatenated list
print ("Concatenated list using list comprehension: "
                                     + str(res_list))
输出:
Concatenated list using list comprehension: [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]


方法#4:使用extend()

extend()是Python中由列表扩展的函数,因此可用于执行此任务。此函数执行第一个列表的就地扩展。

# Python3 code to demonstrate list
# concatenation using list.extend()
  
# Initializing lists
test_list3 = [1, 4, 5, 6, 5]
test_list4 = [3, 5, 7, 2, 5]
  
# using list.extend() to concat
test_list3.extend(test_list4)
  
# Printing concatenated list
print ("Concatenated list using list.extend() : "
                               + str(test_list3))
输出:
Concatenated list using list.extend() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]


方法 #5:使用 *运算符

使用 *运算符,此方法是列表连接的新增功能,仅适用于Python 3.6+。任何没有。 of 列表可以使用此运算符连接并在新列表中返回。

# Python3 code to demonstrate list
# concatenation using * operator
  
# Initializing lists
test_list1 = [1, 4, 5, 6, 5]
test_list2 = [3, 5, 7, 2, 5]
  
# using * operator to concat
res_list = [*test_list1, *test_list2]
  
# Printing concatenated list
print ("Concatenated list using * operator : " 
                              + str(res_list))
输出:
Concatenated list using * operator : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]


方法 #6:使用itertools.chain()

itertools.chain()在将其参数链接为一个后返回可迭代对象,因此如果只需要其初始迭代,则不需要存储连接列表。当连接列表必须只使用一次时,这很有用。

# Python3 code to demonstrate list  
# concatenation using itertools.chain()
import itertools
  
# Initializing lists
test_list1 = [1, 4, 5, 6, 5]
test_list2 = [3, 5, 7, 2, 5]
  
# using itertools.chain() to concat
res_list = list(itertools.chain(test_list1, test_list2))
  
# Printing concatenated list
print ("Concatenated list using itertools.chain() : "
                                      + str(res_list))
输出:
Concatenated list using itertools.chain() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]