Python生成器:是否可以在匹配时检索索引
我想检索与特定值匹配的元素索引 例如,我有一个以下格式的数组:Python生成器:是否可以在匹配时检索索引,python,generator,Python,Generator,我想检索与特定值匹配的元素索引 例如,我有一个以下格式的数组: data = [ { type: <string>, texts: [ text: <String>, locations: [ { x: <int>, y
data = [
{
type: <string>,
texts: [
text: <String>,
locations: [
{
x: <int>,
y: <int>
}
]
]
}
]
如果存在类型,我将使用以下命令检查是否存在特定的“文本”:
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
如果macthing_数据==无:
其他:
类型_idx=0
对于idx,匹配_数据中的项:
如果项目[“类型”]=“水果”:
类型_idx=idx
打破
然后编写另一个生成器(与上面类似)以检查是否存在匹配的“文本”
在检查匹配值是否存在时,是否有任何方法可以检索匹配的idx
?
我将使用索引来更新数组中的值。
抱歉,如果帖子没有社区期望的那么清晰。
谢谢使用
输出
0 a
1 b
2 c
非常感谢。我的假设是,无论我使用“for index,value in enumerate(generator)”还是“for value in enumerate(generator)”,值都是相同的。然而,当我在代码中测试这一点时,它们的工作方式似乎有所不同对于索引,enumerate(generator)中的值“似乎检索”类型,“文本”,其中“for value in enumerate(generator)”似乎返回(元素)数据的字典。我的偏好是获得后一个值,但也有索引。我在这里遗漏了什么。我无法使用next()使其工作,但可以使用枚举中的列表理解使其工作。我能够检索索引和相应的实体。谢谢你的帮助。
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