【问题标题】:How to use filter with itemgetter while using the operator?使用运算符时如何将过滤器与 itemgetter 一起使用?
【发布时间】:2016-12-29 11:17:06
【问题描述】:

我有一个dictionarypeople's namestock value,我想获得包含股票名称和最大值的tuple。这是一个问题:一些股票价值不可用并作为'NaN' 插入,因此,我想过滤它们。

max_stock = max(stock.iteritems(), key=operator.itemgetter(1))

如何在代码中添加过滤选项?

【问题讨论】:

    标签: python operator-keyword


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2021-04-02
      • 1970-01-01
      • 2016-06-28
      • 2019-09-26
      • 2012-01-28
      • 2023-03-10
      • 1970-01-01
      • 2013-09-23
      • 2021-06-16
      相关资源
      最近更新 更多