我创建了一个生成器,该生成器返回一个元组,例如项目名称和价格。
output = ('apple',$2)
我想在发生器的所有输出中找到价格最高的元组。
当元组不是生成器的输出时,我知道如何获得第二项的最大值,但是我不知道何时需要生成器。
我应该附加循环结果并首先创建一个超级列表吗?例如,[('apple',$2),('pear',$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)