Python:lis中str的双重随机化

2024-06-26 17:41:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想接收随机列表值。在第一步中,我想接收一个随机语言代码,在第二步中给定该代码,我想从基于第一步中随机选择的语言的列表中接收一个随机值:

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)

不幸的是,输出只有两个单词enfr中的一个字符,例如,只有e。但它不会(随机)返回,例如en3。我怎样才能解决这个问题


Tags: no代码import语言列表langrandomfr
2条回答

创建一个字典,将您的语言选择作为键,可能的第二个选择作为值,然后从基于键的值中选择:

>>> 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'

因此,您在这里要做的是,首先要求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)

相关问题 更多 >