2

我在 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'],但我的控制台FalseTrue. keyword实际上,如果至少有一个in实例,我想创建一个函数来执行某些操作concept['name']。如果有人愿意加入,我将非常感谢您的帮助。

4

1 回答 1

3

您可以使用任何运算符来检查您是否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']))
于 2017-12-15T15:18:34.117 回答