如何在python中使用生成器查找特定值
我创建了一个生成器,它返回一个元组,例如一个项目的名称和价格如何在python中使用生成器查找特定值,python,python-3.x,generator,iterable,Python,Python 3.x,Generator,Iterable,我创建了一个生成器,它返回一个元组,例如一个项目的名称和价格 output = ('apple',$2) 我想在生成器的所有输出中找到价格最大时的元组 当元组不是生成器的输出时,我知道如何获得第二项的最大值,但我不知道生成器何时需要循环 我应该先附加循环结果并创建一个超级列表吗?例如,[('apple',$2),('pear',$1)…]max接受任何iterable。发电机是一台发电机。您可以提供自定义的键功能,以便max只考虑第一个索引: from operator import item
output = ('apple',$2)
我想在生成器的所有输出中找到价格最大时的元组
当元组不是生成器的输出时,我知道如何获得第二项的最大值,但我不知道生成器何时需要循环
我应该先附加循环结果并创建一个超级列表吗?例如,
[('apple',$2),('pear',$1)…]
max
接受任何iterable。发电机是一台发电机。您可以提供自定义的键
功能,以便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)
max
接受任何iterable。发电机是一台发电机。您可以提供自定义的键
功能,以便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)
2美元是非法的。。我认为,要么是字符串,要么是不带$2符号的数字,都是非法的python。。me认为-如果
tup[1]
是int
,则它是一个字符串或一个不带$sign的数字,否则转换为int的自定义函数是needed@Dalvenjia,同意,在这种情况下,可以使用lambda x:int(x[1])
(如果是字符串)。或者lambda x:int(x[1]。strip(“$”)
如果金额如问题中所述以美元为单位,则如果tup[1]
是一个int
,则可以使用转换为int的自定义函数needed@Dalvenjia,同意,在这种情况下,可以使用lambda x:int(x[1])
(如果是字符串)。或者lambda x:int(x[1]。strip(“$”)
如果金额如问题中所述以美元为单位