【问题标题】:Checking for at least one instance of keyword in list检查列表中至少一个关键字实例
【发布时间】:2017-12-15 15:07:12
【问题描述】:

我在 Python 中使用 Clarifai 的 API 从照片中获取概念名称,并想确定它们是否与局部变量匹配。以下命令调用一个列表:

In [1]:  p1_response = model.predict_by_filename(filename='PATH_TO_FILE')
         p1_concepts = p1_response['outputs'][0]['data']['concepts']
         for concept in p1_concepts:
         print(concept['name'])
Out [2]: street
         outdoors
         architecture
         travel
         city
         horizontal plane
         pavement
         road
         house
         town
         urban
         car
         no person
         building
         stock
         luxury
         traffic
         apartment
         business
         tourism

我的局部变量是keyword,定义为"car"。我尝试运行if keyword in concept['name'],但我的控制台在True 之前列出了11 个Falses。实际上,如果concept['name'] 中至少有一个keyword 实例,我想做一个函数。如果有人愿意加入,我将非常感谢您的帮助。

【问题讨论】:

  • any(word == keyword for word in concept['name'])
  • @GarbageCollector 我收到了'bool' object is not iterable TypeError。
  • 再试一次,我已经更新了
  • 看起来concept['name'] 不是一个列表,而是一个带有\n 的字符串。试试这个:keyword in concept['name'].split()
  • @Nish 我有一个True,但有几个Falses。

标签: python python-3.x python-2.7 boolean clarifai


【解决方案1】:

您可以使用任何运算符来检查您keyword是否出现在任何列表成员concept['name']

>>> keyword = "car"
>>> concept['name'] = ['car', 'carr', 'carrrr']
>>> any(word == keyword for word in concept['name'])
>>> True

但是它只适用于列表元素如果它们不是以\n 结尾的,要删除所有\n 使用必须对列表进行如下预处理:

>>> clean_list = list(map(lambda s: s.strip(), concept['name']))

【讨论】:

  • 嗯。我在使用 any 运算符之前对列表进行了预处理,然后运行 ​​if-then 语句以在任何元素具有与关键字相同的值时返回 True,但我得到与之前相同的输出:True 之前的 11 个 False。如果列表中至少存在一个关键字实例,如何让控制台在没有其他 False 雄蕊的情况下返回 True?
  • 除非您的关键字是list,否则这是不可能的。你能发布你的确切解决方案,以便我检查
  • 好的。我做了一个 while 语句,它在中断之前做了一些事情,现在有效。我之前尝试过以下操作:clean_list = list(map(lambda s: s.strip(), concept['name']))if any(word == keyword for word in concept['name']):print(True)else:print(False)
猜你喜欢
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-11
  • 2015-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多