我创建了一个返回元组的生成器,例如项目名称和价格。output = ('apple',$2)我想在生成器的所有输出中找到价格最高时的元组。当元组不是生成器的输出时,我知道如何获得第二项的最大值,但我不知道何时需要循环生成器。我应该附加循环结果并首先创建一个超级列表吗?例如,[('apple',$2),('pear',$1) ... ]
1 回答
繁花不似锦
TA贡献1851条经验 获得超4个赞
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)
添加回答
举报
0/150
提交
取消