如何在使用运算符时将过滤器与 itemgetter 一起使用?
How to use filter with itemgetter while using the operator?
我有一个 dictionary
和 people's name
和 stock value
,我想得到 tuple
包含股票的名称和最大值。这是一个问题:一些股票价值不可用并作为 '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
我有一个 dictionary
和 people's name
和 stock value
,我想得到 tuple
包含股票的名称和最大值。这是一个问题:一些股票价值不可用并作为 '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