-2

リストのリストがあるとしましょう

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

そして、iteratoolを使用せずにリストをこのようなものに結合したい

["Boy","B0y","2oy","20y"]

Python 2.5を使用する必要があるため、itertoolを使用できません。

4

2 に答える 2

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     

どちらの場合でも、itertools.product()を使用してより優れた柔軟なデカルト積を作成しています (方法に興味がある場合を除きます...)

于 2013-02-22T22:57:47.137 に答える