1

私はリストを持っています[".","_","<<",">>"]

必要なのは、長さが 4 のすべての文字列を、各文字が上記のリストの 1 つであるすべての可能な組み合わせで取得することです。

例 : "._<<>>","__<<>>",".<<<<>>" ... etc

今、私は4の長さでそれをやっています:

mylist = [".","_","<<",">>"]
for c1 in mylist:
    for c2 in mylist:
        for c3 in mylist:
            for c4 in mylist:
                print "".join([c1,c2,c3,c4])

しかし、それは見栄えが悪く、長さを 10 以上に拡大する必要がある場合はどうすればよいでしょうか。

4

2 に答える 2

3

itertools.product()ネストされたループなしで、組み合わせを生成するために使用します。

from itertools import product

mylist = [".", "_", "<<", ">>"]
length = 4
for chars in product(mylist, repeat=length):
    print ''.join(chars)

length変数を調整するだけで、より長い組み合わせが得られます。

于 2013-09-11T11:43:37.427 に答える
3

その目的でitertools.productを使用できます

n = 4
for symbols in itertools.product([".","_","<<",">>"], repeat=n):
    print "".join(symbols)

一発ギャグ :

print "\n".join(["".join(s) for s in itertools.product([".","_","<<",">>"], repeat=n)])
于 2013-09-11T11:43:52.790 に答える