如果所述字符串等于给定的inpu,则查找该字符串在列表中的位置

2024-04-27 08:05:08 发布

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

我写这段代码是为了找到作为输入插入的单词的位置。你知道吗

我插入了现有的单词,但是我的代码没有找到它们的位置。它返回“notfound”。你知道吗

data=["mama","mia","here","I","go","again"]

inputo= input("word?")

for item in data:
  if item is inputo:
    print (data.index(inputo))
else:
  print("not found")

Tags: 代码goforinputdatahereitem单词
1条回答
网友
1楼 · 发布于 2024-04-27 08:05:08

您需要使用==而不是is进行比较。is实际上很少有用(除了与None这样的内置常量进行比较),因为它比较的是同一个对象(“引用”),而==检查“值相等”。所以is只能用来和singleton比较,否则你就知道自己在做什么了。你知道吗

但是,您可以在data.index周围使用tryexcept,它应该可以在没有任何手动迭代和比较的情况下工作:

try:
    print(data.index(inputo))
except ValueError:
    print('not found')

至少只要列表中只有一个匹配项。如果可能有多个匹配项,您可以使用enumerate

for idx, item in enumerate(data):
    if item == inputo:
        print(idx)
else:
    print("not found")

相关问题 更多 >