在python中组合list元素列表

时间:2013-02-22 22:15:13

标签: python python-2.5

假设我有一个列表

[ ['B','2'] , ['o','0'], ['y']]

我希望在不使用iteratool

的情况下将列表组合成这样的东西
["Boy","B0y","2oy","20y"]

我不能使用itertool,因为我必须使用python 2.5。

2 个答案:

答案 0 :(得分:1)

itertools.product()做你想做的事。

>>> [''.join(x) for x in itertools.product(*[['B', '2'], ['o', '0'], ['y']])]
['Boy', 'B0y', '2oy', '20y']

答案 1 :(得分:0)

如果你不想使用itertools,这个列表理解会产生你的输出:

>>> LoL=[['B','2'], ['o','0'], ['y']]
>>> [a+b+c for a in LoL[0] for b in LoL[1] for c in LoL[2]]
['Boy', 'B0y', '2oy', '20y']

这是一个更紧凑的版本:

LoL=[['B','2'], ['o','0'], ['y']]
r=[]
for a in LoL[0]:
    for b in LoL[1]:
        for c in LoL[2]:
            r.append(a+b+c)

print r     

在任何一种情况下,你都会使用cartesian product制作一个更好,更灵活的itertools.product()(除非你只是对如何做到这一点感到好奇......)