Python 查找字段与值匹配的列表的所有元素

Python 查找字段与值匹配的列表的所有元素,python,list,generator,Python,List,Generator,如果我有这样一个列表: [element(name='A', value=0), element(name='B', value=1)] 我想查找列表中值字段等于0的所有元素: element[:].value == 0 哪条路最短 elements = [element(name='A', value=0), element(name='B', value=1)] matches = [element for element in elements if element.value ==

如果我有这样一个列表:

[element(name='A', value=0), element(name='B', value=1)]
我想查找列表中值字段等于0的所有元素:

element[:].value == 0
哪条路最短

elements = [element(name='A', value=0), element(name='B', value=1)]
matches = [element for element in elements if element.value == 0]

要从所有匹配项中获取名称,请执行以下操作:

names = [element.name for element in matches]
print(names)

列表理解应该可以做到这一点

not_values = [e for e in elements if not e.value] 

请注意,我使用的是
not e.value
,因为我认为它读起来更好,而且与变量名
not_values
更一致,但您也可以使用
e.value==0

这些是什么。。。?命名元组?你能提供更多的细节吗?我猜这就是你所说的列表1=[{'name':1,“value”:2},{'name':1,“value”:2}]。字典元素列表。如果
e.value
[]
False
怎么办。这完全取决于你合同的先决条件。是否期望元素包含任何虚假值,以及应如何处理这些情况。i、 e.你是否会过滤掉它们?如果我匹配=[element for element in elements if element.value==0],我如何打印(匹配[:].name)?@Rafa更新了我的答案以回答你的问题。我可以直接做吗?匹配=[element.name for element in elements if element.value==0]@Rafa是的,你可以!非常感谢你!