Python 使用字符串访问数组中元素的索引,但字符串是随机选择的

Python 使用字符串访问数组中元素的索引,但字符串是随机选择的,python,arrays,indexing,Python,Arrays,Indexing,我正在做一个文本冒险游戏,你必须在其中解谜语。我创建了一个数组riddles=[“riddle1”,“riddle2”,…]和answers=[“answer1”,“answer2”,…](answer1是riddle1的答案),然后我用riddle=random.choice(riddles) 现在我要检查输入是否与随机选择的谜语的答案相同。但首先,我尝试将随机选择的谜语的正确答案保存到变量answer中。我用answer=answers[ridle]来做这件事。我还尝试了在谷歌上找到的ans

我正在做一个文本冒险游戏,你必须在其中解谜语。我创建了一个数组
riddles=[“riddle1”,“riddle2”,…]
answers=[“answer1”,“answer2”,…]
(answer1是riddle1的答案),然后我用
riddle=random.choice(riddles)
现在我要检查
输入
是否与随机选择的谜语的
答案
相同。但首先,我尝试将随机选择的谜语的正确答案保存到变量
answer
中。我用
answer=answers[ridle]
来做这件事。我还尝试了在谷歌上找到的
answer=answers['ridle']
。我甚至尝试了
answer=answers[ridles[ridle]]
,但我无法达到我想要的效果

另外,当我试图运行程序时,我得到了这个错误
列表索引必须是整数或片,而不是str

下面是函数

`def riddle_room1():

你确定这是一个整数吗? 要在下一行中使用riddle,它必须是一个整数。列表索引必须始终为整数

answer = answers[riddles[riddle]]
我认为字典在这里会更有用

你确定这是一个整数吗? 要在下一行中使用riddle,它必须是一个整数。列表索引必须始终为整数

answer = answers[riddles[riddle]]

我认为字典在这里会更有用。

与其从谜语列表中选择一个随机元素,不如生成一个从
0
谜语长度的整数?这样,您就可以使用这个整数作为
谜语
答案
的索引

考虑这个例子:

rand = random.randint(1, len(riddles)) # Generate a random int from 0 to length of riddles
riddle = riddles[rand]                 # Use this int as index for riddles
answer = answers[rand]                 # Same int can be used as index for answers
print(riddle)

与其从谜语列表中选择一个随机元素,不如生成一个从
0
谜语长度的整数?这样,您就可以使用这个整数作为
谜语
答案
的索引

考虑这个例子:

rand = random.randint(1, len(riddles)) # Generate a random int from 0 to length of riddles
riddle = riddles[rand]                 # Use this int as index for riddles
answer = answers[rand]                 # Same int can be used as index for answers
print(riddle)

列表索引必须是整数

r = random.randint(0,len(riddles))
riddle = riddles [r]
answer = answers [r]

列表索引必须是整数

r = random.randint(0,len(riddles))
riddle = riddles [r]
answer = answers [r]

之所以出现错误,是因为要从列表中获取内容,需要传递索引参数,该参数应为整数。但是您正在传递导致错误的字符串索引

现在是下一个问题的解决方案

要获得谜语所属的索引,您可以执行以下操作

answer=答案[谜语索引(谜语)]

index函数告诉给定参数的索引编号(参数是您在函数括号中给出的东西!)

例:

strs=['hello'、'bye'、'welcome']
打印(strs.index('bye'))#这将打印1,因为strs[1]是bye

希望您得到了答案,如果有任何疑问,您可以发表评论。

您得到了错误,因为要从列表中获取内容,您需要传递索引参数,该参数应为整数。但是您正在传递导致错误的字符串索引

现在是下一个问题的解决方案

要获得谜语所属的索引,您可以执行以下操作

answer=答案[谜语索引(谜语)]

index函数告诉给定参数的索引编号(参数是您在函数括号中给出的东西!)

例:

strs=['hello'、'bye'、'welcome']
打印(strs.index('bye'))#这将打印1,因为strs[1]是bye

希望您能得到答案,如果有任何疑问,您可以发表评论。

好的,谢谢,我会尝试这样做,并会回来告诉您发生了什么。好的,谢谢,我会尝试这样做,并会回来告诉您发生了什么