假设我有一个字典列表fruitLoads,所有字典都有相同的键。我要提取一个列表,其中包含具有特定名称且满足特定条件的所有条目。

apples = [i['Apples'] for i in fruitLoads if i['Apples'] != 0]

有没有办法避免重复i['Apples']
如果这两个条目中我都有float(i['Apples'])项,那么这个解决方案是否适用?

最佳答案

可以使用嵌套的生成器表达式:

apples = [v for v in (i['Apples'] for i in fruitLoads) if v != 0]

尽管可以通过将生成器分配给单独的变量使其可读性更强一点:
apple_loads = (i['Apples'] for i in fruitLoads)
apples = [v for v in apple_loads if v != 0]

现在也可以合并转换:
apple_loads = (float(i['Apples']) for i in fruitLoads)
apples = [v for v in apple_loads if v != 0]

关于python - 在测试提取条目的条件时提取列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28193054/

10-12 18:59