如何在Python中合并两个不同长度的列表

2024-04-29 14:29:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在python3中,我看到了两个不同长度的合并列表。我在这里已经讨论了很多其他的话题,但似乎没有一个能解决我的问题。你知道吗

我有:

List1 = ['A','B','C']
List2 = ['ab', 'ac', 'ad', 'ae']

Output = [['Aab', 'Aac', 'Aad', 'Aae'],['Bab','Bac','Bad','Bae'],['Cab','Cac','Cad','Cae']]

提前谢谢!你知道吗

更新--感谢ndclt为上述问题提供的解决方案。你知道吗

我真正的问题是:

List1 = ['A','B','C']
List2 = ['a','b','c','d','e','f','g','h','i']

Output desired = ['Aa', 'Ab', 'Ac', 'Bd', 'Be', 'Bf', 'Cg', 'Ch', 'Ci']

Tags: 列表outputabadacpython3话题bab
3条回答

这是一条单行线:

它使用for循环理解创建嵌套列表。你知道吗

List1 = ['A','B','C']
List2 = ['ab', 'ac', 'ad', 'ae']

out = [[an + bn for bn in List2] for an in List1]
print(out)
# >>> [['Aab', 'Aac', 'Aad', 'Aae'], ['Bab', 'Bac', 'Bad', 'Bae'], ['Cab', 'Cac', 'Cad', 'Cae']]

试试这个:

list1 = ['A','B','C']
list2 = ['ab', 'ac', 'ad', 'ae']
lst = []
finaly_lst = []
for i in list1:
    for j in list2:
        lst.append(i+j)
    finaly_lst.append(lst)
    lst = []
print(finaly_lst)

输出:

[['Aab', 'Aac', 'Aad', 'Aae'], ['Bab', 'Bac', 'Bad', 'Bae'], ['Cab', 'Cac', 'Cad', 'Cae']]

不是很好,但它很有效:

List1 = ['A','B','C']
List2 = ['ab', 'ac', 'ad', 'ae']

final = []
for one in List1:
    intermediate = []
    for two in List2:
        intermediate.append(one+two)
    final.append(intermediate)

print(final)
[['Aab', 'Aac', 'Aad', 'Aae'], ['Bab', 'Bac', 'Bad', 'Bae'], ['Cab', 'Cac', 'Cad', 'Cae']]

如果嵌套不是强制性的:

from itertools import product
List1 = ['A','B','C']
List2 = ['ab', 'ac', 'ad', 'ae']

final = [one+two for one, two in product(List1, List2)]
print(final)
['Aab', 'Aac', 'Aad', 'Aae', 'Bab', 'Bac', 'Bad', 'Bae', 'Cab', 'Cac', 'Cad', 'Cae']

相关问题 更多 >