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

问题描述 投票:0回答:2

如果我有一个这样的列表,我想找到列表中所有值域等于0的元素。

[element(name='A', value=0), element(name='B', value=1)]

我想找到列表中所有值域等于0的元素。

element[:].value == 0

哪种方法最快捷?

python list generator
2个回答
1
投票
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)

0
投票

列表理解法应该可以做到

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

请注意,我使用的是 not e.value 因为我觉得这样读起来更顺畅,而且和变量名也更一致。not_values 但你也可以用 e.value == 0.

© www.soinside.com 2019 - 2024. All rights reserved.