我有一个字典
,其中包含人名
和股票值(value)
,我想获取元组
组成股票的名称和最大值(value)。这里有一个问题:一些股票值(value)不可用并以 'NaN'
形式插入,因此,我想过滤它们。
max_stock = max(stock.iteritems(), key=operator.itemgetter(1))
如何在代码段中添加过滤选项?
最佳答案
您必须过滤哪些项目进入 max()
。您可以在那里使用生成器表达式:
max_stock = max((kv for kv in stock.iteritems() if kv[1] != 'NaN'),
key=operator.itemgetter(1))
请考虑到,如果过滤后没有留下任何项目,现在可能会引发 ValueError
!您可以使用 try... except
语句来处理这种情况:
try:
max_stock = max((kv for kv in stock.iteritems() if kv[1] != 'NaN'),
key=operator.itemgetter(1))
except ValueError:
# no stock at all
max_stock = None
关于python - 如何在使用运算符时将过滤器与 itemgetter 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41378631/