如何在python中使用生成器查找特定值

时间:2018-11-13 17:36:45

标签: python python-3.x generator iterable

我创建了一个生成器,该生成器返回一个元组,例如项目名称和价格。

output = ('apple',$2)

我想在发生器的所有输出中找到价格最高的元组。

当元组不是生成器的输出时,我知道如何获得第二项的最大值,但是我不知道何时需要生成器。

我应该附加循环结果并首先创建一个超级列表吗?例如,[('apple',$2),('pear',$1) ... ]

1 个答案:

答案 0 :(得分:3)

max接受任何迭代。生成器是可迭代的。您可以提供自定义key函数,以便max仅考虑第一个索引:

from operator import itemgetter

# generator expression below can also be a generator function
gen = (i for i in (('apple', 2), ('pear', 1)))

res = max(gen, key=itemgetter(1))  # ('apple', 2)