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

How to find specific value using generator in python

我创建了一个生成器,其中 returns 一个元组,例如商品名称和价格。

output = ('apple',)

我想在生成器的所有输出中找到价格最大时的元组。

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

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

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)