Python:从列表中调用的str可以用作变量吗?

2024-06-01 01:39:57 发布

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

我是新来的编码。我正在尝试创建代码,将随机词替换为预设模式。我一直在尝试插入一个变量来调用一个单词列表,从中获取一个随机单词。相反,Python从变量中随机抽取一个字母。我希望Python调用单词列表并从列表中随机抽取一个元素。你知道吗

我试过创建一个dict并将变量作为一个值调用,但结果是一样的。再说一次,这对我来说是全新的,如果答案很简单的话,我很抱歉。可能有一个方法调用我不知道,或者我只是在错误的轨道上。感谢您的帮助。谢谢!你知道吗

GH= ['Filmed','Stonehenge','Summer']
LM= ['apple','cat',"lemon"]
TQ= ['bear','orange','hat']

pats_lst = [["GH","LM","TQ"],["LM","GH","TQ"]]

    # grab a random pattern 

pat = (random.choice(pats_lst))

    # pull random words from lists 

rand_words = [random.choice(item) for item in pat]

    #  *** pulls random letter from str 
    # does not call list 

print(pat)
print(rand_words)

    # returns
    #['LM', 'GH', 'TQ']
    #['M', 'H', 'Q'] ** not ,for ex., ['cat','Summer','orange']

Tags: from列表tqrandomgh单词catlm
3条回答

你必须改变:

pats_lst = [["GH","LM","TQ"],["LM","GH","TQ"]]

收件人:

pats_lst = [[GH, LM, TQ], [LM, GH, TQ]]

在第一部分中,您存储了字符串列表,而不是存储变量GH、LM、TQ的值。因此,删除pats\u lst的每个值的引号

正如Bazingaa在is comment中所说的,您可以简单地创建一个对象列表,而不是一个字符串列表!你知道吗

pats_lst = [[GH, LM, TQ], [LM, GH, TQ]]

列表可以是任何类型的对象,它们甚至不需要是同一类型的对象。你知道吗

如果将pats\u lst数组中的值放在引号中,则它们将是字符串;如果从其值中删除引号,则它们将是变量,并且您将得到随机单词。你知道吗

相关问题 更多 >