Python程序:在列表中连接每个元素
在本文中,我们将学习一个Python程序,用于在列表中连接每个元素。
使用的方法
以下是实现此任务的各种方法−
- 使用列表推导和字符串连接
-
使用itertools.product()函数
示例
假设我们已经输入了两个列表。现在,我们将在给定的两个列表中连接每个元素。
输入
inputList1 = ["hello", "tutorialspoint", "python"]
inputList2 = ["coding", "articles"]
输出
结果匹配组合列表:
['hello coding', 'hello articles', 'tutorialspoint coding', 'tutorialspoint articles', 'python coding', 'python articles']
方法1:使用列表推导和字符串连接
列表推导
当您希望基于现有列表的值构建新列表时,列表推导提供了更短/简洁的语法。
算法(步骤)
下面是执行所需任务的算法/步骤−。
- 创建一个变量以存储 输入 列表1,并打印给定的第一个列表。
-
创建另一个变量以存储 输入 列表2,并打印给定的第二个列表。
-
使用列表推导在第一个列表和第二个列表(嵌套循环)中进行遍历。
-
在其中使用第一个列表的第一个元素和第二个列表的第二个元素创建元组对。
-
通过迭代对对列表进行字符串连接以连接对元素。
-
打印结果配对组合列表
示例
以下程序使用列表推导和字符串连接返回跨列表连接每个元素的连接−
# 输入列表1
inputList1 = ["hello", "tutorialspoint", "python"]
# 输入列表2
inputList2 = ["coding", "articles"]
# 打印输入列表1
print("输入列表1:", inputList1)
# 打印输入列表2
print("输入列表2:", inputList2)
# 使用列表遍历第一个列表和第二个列表
# 使用第一个列表的第一个元素创建元组对
# 和第二个列表的第二个元素
pairs_list = [(p, q) for p in inputList1 for q in inputList2]
#在上面的对列表中进行迭代并
#连接元组(字符串连接)
resultantList = [m + ' ' + n for (m, n) in pairs_list]
# 打印结果配对组合列表
print("结果匹配组合列表:\n", resultantList)
输出
在执行上述程序时,将生成以下输出−
输入列表1:['hello', 'tutorialspoint', 'python']
输入列表2:['coding', 'articles']
结果匹配组合列表:
['hello coding', 'hello articles', 'tutorialspoint coding', 'tutorialspoint articles', 'python coding', 'python articles']
时间复杂度 − O(n^2),因为有两个for循环
空间复杂度 − O(n)
方法2:使用itertools.product()函数
itertools.product() 返回Cartesian Product。
让我们看看什么是 笛卡尔积 是-
从数学角度来看,其中a属于A,b属于B的所有有序对(a,b)的集合称为两个集合的笛卡尔积。请看下面的示例以更好地理解。
示例
list1 = [10, 20, 30]
list2 = [2, 4, 6]
输出
[(10,2),(10,4),(10,6),(20,2),(20,4),(20,6),(30,2),(30,4),(30,6)]
算法(步骤)
以下是执行所需任务的算法/步骤 –
- 使用import关键字从itertools模块导入product()函数。
-
创建一个变量来存储输入的列表1,并打印给定的第一个列表。
-
创建另一个变量来存储输入的列表2并打印给定的第二个列表。
-
取一个空列表来存储结果。
-
使用product()函数遍历给定列表的笛卡尔积。
-
使用+运算符(字符串连接)连接两个列表元素。
-
使用append()函数将此对字符串添加到结果中。
-
打印结果。
示例
以下程序使用itertools.product()和字符串连接返回列表中每个元素的连接 –
# 从itertools模块导入product
from itertools import product
# 输入列表1
inputList1 = ["hello", "tutorialspoint", "python"]
# 输入列表2
inputList2 = ["coding", "articles"]
# 打印输入列表1
print("输入列表1:", inputList1)
# 打印输入列表2
print("输入列表2:", inputList2)
# 取一个空列表来存储连接结果
resultantList = []
#遍历两个列表的笛卡尔积
for e in product(inputList1, inputList2):
# 使用空格作为分隔符连接两个列表元素
pairString = e[0]+' '+e[1]
# 将这个对字符串添加到结果列表的末尾
resultantList.append(pairString)
#打印结果配对组合列表
print("连接结果如下:\n", resultantList)
输出
执行上述程序后将生成以下输出 –
输入列表1:['hello','tutorialspoint','python']
输入列表2:['coding','articles']
连接结果如下:
['hello coding','hello articles','tutorialspoint coding','tutorialspoint articles','python coding','python articles']
结论
在本文中,我们学习了如何使用两种不同的方法连接两个给定列表中的每个元素。此外,我们还了解了笛卡尔积是什么,如何使用product()方法进行计算以及示例。