假设我有一个列表
[ ['B','2'] , ['o','0'], ['y']]
我希望在不使用iteratool
的情况下将列表组合成这样的东西["Boy","B0y","2oy","20y"]
我不能使用itertool,因为我必须使用python 2.5。
答案 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()(除非你只是对如何做到这一点感到好奇......)