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

Find position of string within list if said string is equal to the given input

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

我插入了现有的单词,但我的代码没有找到它们的位置。它returns "not found".

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")

您需要使用 == 而不是 is 进行比较。 is 实际上很少有用(除了与 None 等内置常量进行比较),因为它比较是否是同一个对象 ("reference"),而 == 检查 "value equality"。所以 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")