Python生成器:是否可以在匹配时检索索引

时间:2018-11-28 15:22:29

标签: python generator

我想检索与特定值匹配的元素的索引 例如我有以下格式的数组:

data = [
  {
    type: <string>,
    texts: [ 
             text: <String>,
             locations: [
                           {
                             x: <int>,
                             y: <int>
                           }  
                        ]
           ]
  }

]

我正在使用下面的方法查找类型是否存在:

matching_data = next((item for item in data if item["type"] == "fruit"), None) 

如果类型存在,我将使用以下方法检查特定的“文本”是否存在:

if macthing_data == None:
   <do some thing>
else:
   type_idx = 0
   for idx, item in matching_data:
       if item["type"] == "fruit":
          type_idx = idx
          break

然后编写另一个生成器(与上面类似)以检查是否存在匹配的“文本”。

检查匹配值是否存在时,是否还有任何方法可以检索匹配的idx? 我将使用索引来更新数组中的值。 抱歉,如果该职位的可读性不及社会期望。 谢谢

1 个答案:

答案 0 :(得分:1)

使用enumerate

def example_generator():
  yield 'a'
  yield 'b'
  yield 'c'

for index, value in enumerate(example_generator()):
  print(index, value)

输出

0 a
1 b
2 c