1
2〜4文字のアルファベットの組み合わせをすべて出力するプログラムを作成しようとしています。プログラムは今のところうまく動作しますが、実装は理想から遠いです。これは今のところです:ネストされたforループの反復変数を繰り返しごとに追加します。
# make a list that contains ascii characters A to z
ascii = list(range(65, 123))
del ascii[91 - 65 : 97 - 65] # values 91-97 aren't letters
for c1, c2 in product(ascii, repeat=2):
word = chr(c1) + chr(c2)
print(word)
for c1, c2, c3 in product(ascii, repeat=3):
word = chr(c1) + chr(c2) + chr(c3)
print(word)
for c1, c2, c3, c4 in product(ascii, repeat=4):
word = chr(c1) + chr(c2) + chr(c3) + chr(c4)
print(word)
私は次の精神の中で、むしろ何かを持っています。次のコードが完全に間違っていることを私に許してください。私はより良い実装であると思ったものの精神を伝えようとしています。
iterationvars = [c1, c2, c3, c4]
for i in range(2,5):
for iterationvars[0:i] in product(ascii, repeat=i):
word = ??
print(word)
だから私は2つの質問がある:
1)私は「母ループ」の反復ごとにループの入れ子になったの反復変数の数を変更することができますか?
2)どのようにしてという単語を実装しても、特定の反復に何個存在するにせよ、すべての反復変数を動的に追加するように実装することができます。
もちろん、私が示唆しているものとは非常に異なる実装も歓迎すべきものです。どうもありがとう!
このようなエレガントな実装!どうもありがとう! –