【问题标题】:Find position of string within list if said string is equal to the given input如果所述字符串等于给定的输入,则在列表中查找字符串的位置
【发布时间】:2017-08-08 22:25:30
【问题描述】:

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

我插入了现有的单词,但我的代码没有找到它们的位置。它返回“未找到”。

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

【问题讨论】:

    标签: python string list python-3.4


    【解决方案1】:

    您需要使用== 而不是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")
    

    【讨论】:

      猜你喜欢
      • 2020-11-08
      • 2017-05-26
      • 2016-04-13
      • 2019-06-22
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      相关资源
      最近更新 更多