我需要在python中连接 2个不同的字符串列表。
例如:
list1 = ['A','B','C']
list2 = ['D', 'E']
我想获得
list3 = ['AD', 'AE', 'BD', 'BE', 'CD', 'CE']
我试过了:
list3 = zip(list1,list2)
它返回
list3 = [('A','D'), ('B','E')]
我也试过了:
list(itertools.product(list1, list2))
但它返回
[('A','D'),('A','E'),...,('C','E')]而不是['AD','AE',' BD','BE', 'CD','CE']
有什么想法吗? THX
答案 0 :(得分:3)
这应该有所帮助:
>>> from itertools import product
>>> list1 = ['A','B','C']
>>> list2 = ['D', 'E']
>>> "".join(list(product(list1, list2)))
['AD', 'AE', 'BD', 'BE', 'CD', 'CE']
答案 1 :(得分:0)
您可以使用itertools.product
获取笛卡尔积或使用2个循环
>>> list1 = ['A','B','C']
>>> list2 = ['D', 'E']
>>> import itertools
>>> list(itertools.product(list1, list2))
[('A', 'D'), ('A', 'E'), ('B', 'D'), ('B', 'E'), ('C', 'D'), ('C', 'E')]
>>> [(i, j) for i in list1 for j in list2]
[('A', 'D'), ('A', 'E'), ('B', 'D'), ('B', 'E'), ('C', 'D'), ('C', 'E')]
答案 2 :(得分:0)
两个for循环怎么样?
下面的伪代码
for item in list1:
for item2 in list2:
item = item + item2