我想要得到随机列表值。在第一步中,我希望接收一个随机语言代码,并且在第二步中给定该代码,我希望从第一步中基于随机选择的语言的列表中接收一个随机值:
import random
lang = ["lang_fr", "lang_en"]
lang_choice = random.choice(lang)
print(lang_choice)
lang_fr = ["fr1", "fr2", "fr3"]
lang_en = ["en1", "en2", "en3"]
lang_choice_no = random.choice(lang_choice)
print(lang_choice_no)不幸的是,输出只是来自en或fr这两个单词的一个字符,例如,只有e。但它不返回(随机),f.ex。en3。我怎么才能解决这个问题?
发布于 2018-11-02 16:35:32
创建一个字典,将语言选项作为键,可能的第二个选项作为值,然后根据键从值中选择:
>>> lang = ["fr", "en"]
>>> lang_choice = random.choice(lang)
>>> lang_fr = ["fr1", "fr2", "fr3"]
>>> lang_en = ["en1", "en2", "en3"]
>>> lang_dict = {'fr':lang_fr, 'en':lang_en}
>>> lang_choice_no = random.choice(lang_dict[lang_choice])
>>> print(lang_choice_no)
'en1'发布于 2018-11-02 16:33:51
所以,您在这里做的是,首先,您要求python从列表lang中返回一个随机选择。它确实是这样。它返回一个字符串,如"fr"。
然后,您将要求它从变量lang_choice中返回一个随机选择,这是一个随机选择(因此现在是一个字符串),因此它从前面的选择中返回一个随机字符。
你能解释一下你在第二步要做什么吗?要从其中一个列表中选择一个随机值吗?不然呢?
import random
lang = ["fr", "en"]
lang_choice = random.choice(lang)
if lang_choice == "fr":
languages = ["fr1", "fr2", "fr3"]
elif lang_choice == "en":
languages = ["en1", "en2", "en3"]
lang_choice_no = random.choice(languages)
print(lang_choice_no)https://stackoverflow.com/questions/53122491
复制相似问题