如果所述字符串等于给定输入,则在列表中查找字符串的位置
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
周围使用 try
和 except
,它应该可以在没有任何手动迭代和比较的情况下工作:
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")
我编写这段代码是为了找到我作为输入插入的单词的位置。
我插入了现有的单词,但我的代码没有找到它们的位置。它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
周围使用 try
和 except
,它应该可以在没有任何手动迭代和比较的情况下工作:
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")