脳を消耗している質問があります。変数Iがシーケンスを格納し、変数IIが別のシーケンスを格納し、変数IIIも別のシーケンスを格納するとします。変数1は、数値1、次の2、および次の3を表します。次に、これら3つのシーケンスのランダムな文字を持つ別のキー変数があります。その事実を踏まえると、このキー変数の文字を対応する番号に簡単に変換できます。例では、、より、 A OR B OR C = 1であるため、x = 'afh'
と言うのと同じです。x = '123'
ここで複雑な部分があります。
キー変数xを数値に変換すると、各文字が個別に、結果からランダムに文字を返すこともできます。例:、、特に。を使用する場合は、、またはx = '123'
のようなリストを返すことができます。このことから、私がまだ方法を理解できなかったことは次のとおりです。['a','e','f']
['b','d','i']
random.choice()
変数I、II、IIIからのすべての可能なバリエーションをリストに追加するにはどうすればよいですか。例えば:
['adg','beh','cfi','aei','ceg',...]
無限にランダムな組み合わせを印刷する方法を知っていますが、この場合、繰り返しが発生するので、それらは必要ありません。I、II、IIIの間で考えられるすべてのバリエーションをリストに追加したいのです。なぜなら、それらを数字に変換すると、対応するシーケンスから任意の文字を返すことができるからです。さて、私の例が自明であることを願っています。ご清聴ありがとうございました!
I = 'abc' # 1
II = 'def' # 2
III = 'ghi' # 3
x = 'afh' # Random possibility: It could be an input.
L = []
LL = []
for i in range(len(x)):
if x[i] in I:
L.append(1)
if x[i] in II:
L.append(2)
if x[i] in III:
L.append(3)
for i in range(len(L)): # Here lies the mistery...
if L[i] == 1:
LL.append(I)
if L[i] == 2:
LL.append(II)
if L[i] == 3:
LL.append(III)
print L
print LL
出力は次のとおりです。
[1, 2, 3]
['abc', 'def', 'ghi']