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

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

output = ('apple',$2)

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

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

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


一只名叫tom的猫
浏览 235回答 1
1回答

繁花不似锦

max接受任何迭代。生成器是可迭代的。您可以提供自定义key函数,以便max仅考虑第一个索引:from operator import itemgetter# generator expression below can also be a generator functiongen = (i for i in (('apple', 2), ('pear', 1)))res = max(gen, key=itemgetter(1))  # ('apple', 2)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python