在python中连接2个不同列表中的字符串

时间:2016-04-27 09:35:41

标签: python list join

我需要在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

3 个答案:

答案 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