我有一个问题正在消耗我的大脑。假设变量 I 存储一个序列,变量 II 存储一个序列,变量 III 也存储一个序列。变量 one 将代表数字 1、下一个 2 和下一个 3;然后我有另一个关键变量,其中包含这 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']