如何在 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)
我创建了一个生成器,其中 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)