Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:从列表中调用的str可以用作变量吗?_Python - Fatal编程技术网

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

Python:从列表中调用的str可以用作变量吗?,python,Python,我不熟悉编码。我正在尝试创建代码,将随机单词替换为预设模式。我一直在尝试插入一个变量来调用一个单词列表,从中获取一个随机单词。相反,Python从变量中提取一个随机字母。我希望Python调用单词列表并从列表中提取一个随机元素 我曾尝试创建一个dict并将变量作为值调用,但结果相同。再说一次,这对我来说都是新鲜事,如果答案很简单,那么很抱歉。可能有一个我不知道的方法调用,或者我只是走错了方向。感谢您的帮助。谢谢 GH= ['Filmed','Stonehenge','Summer'] LM= [

我不熟悉编码。我正在尝试创建代码,将随机单词替换为预设模式。我一直在尝试插入一个变量来调用一个单词列表,从中获取一个随机单词。相反,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']

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

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

列表可以是任何类型的对象,它们甚至不需要是相同类型的对象。

如果将pats_lst数组中的值放在引号中,则它们将是字符串,如果从其值中删除引号,则它们将是变量,并且您将得到随机字。

您必须更改:

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


在第一部分中,您存储了字符串列表,而不是存储变量GH、LM、TQ中的值。因此,从列表名称中删除引号提示:您需要开始区分变量名称和变量值。一个可能需要引用,而另一个肯定不需要。也许您可以添加一些代码示例来说明您的意思?代码比文字更容易理解;)
pats_lst = [[GH, LM, TQ], [LM, GH, TQ]]