正如威廉·Onsem在評論中提到正確。
」 ...這是非常糟糕的設計,調用 - 名字是相當不安全的,你最好使用字典。」
所以,試試這個:
n = {'option1':'321','option2':'243','option3':'780'}
letter = random.choice(list(n.values()))
或者更短,克里斯提到:從print(letter)
d = {'n':[321, 243, 780]}
letter = random.choice(d['n'])
結果(兩個選項):
321
321
780
243
etc..
編輯 :
如何添加額外的變量:
n = 'n'
d = {n:[321, 243, 780]}
letter = random.choice(d[n])
q = 'q'
d[q] = [600, 234, 180]
new_letter = random.choice(d[q])
現在print(new_letter)
給出:
234
180
180
600
etc..
第二個編輯(這順便說一句是純粹的獎金,因爲這個問題變成了一個完全不同的一個,然後第一問道,因此,它沒有得到優化。然而,工作仍然..):
import random
d = {'n':[321, 243, 780], 'b':['12','56','90'], 'a':['178', '765', '111']}
E = input('Enter Word...')
inputword = list(E)
for key in d.keys():
if key in inputword:
for i in range(len(inputword)):
if inputword[i] == key:
try:
inputword[i] = str(random.choice(d[key]))
except:
pass
result = ''.join(inputword)
print(result)
如果輸入= nba
然後輸出= 32190111
如果輸入= nhhsygbbvvra
然後輸出= 321hhsyg5690vvr178
等。
其實你做**不**需要那個,那是非常糟糕的設計:名稱是相當不安全的。你最好用一本字典。 –
但''n''不是一個列表,它是一個字符串; 'n'是一個列表。 –
我會使用字典,但我真的不想使用一個,除非你可以分配變量到字典中的列表。 –