我有一個消耗我的大腦的問題。假設變量I存儲一個序列,變量II存儲另一個序列,變量III存儲另一個序列。變量1將表示數字1,接下來的2和接下來的3;然後我有另外一個關鍵變量,這三個序列的隨機字符。給出這個事實,我可以很容易地在相應的數字中翻譯這個關鍵變量的字符。在這個例子中,x = 'afh'
比,說的是x = '123'
是一樣的,因爲A OR B OR C = 1,等等。從序列中追加所有可能的數字
現在到了最複雜的部分:
當關鍵變量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']
更多的例子嗎?我理解從x到'[1,2,3]'的翻譯,反之亦然。 – CppLearner