【问题标题】:How do I remove key values in a dictionary?如何删除字典中的键值?
【发布时间】:2014-05-23 13:17:30
【问题描述】:

Python 语言。

我知道如何删除字典中的键,例如:

def remove_zeros(dict)
    dict = {'B': 0, 'C': 7, 'A': 1, 'D': 0, 'E': 5}
    del dict[5]
    return dict

我想知道如何从字典中删除所有为零的值,然后按字母顺序对键进行排序。使用上面的示例,我希望得到 ['A', 'C', 'E'] 作为结果,完全消除键值 B 和 D。

要排序,我只使用 dict.sort() 吗?

我必须使用什么特殊功能吗?

【问题讨论】:

    标签: python list sorting dictionary set


    【解决方案1】:
    sorted(k for (k, v) in D.iteritems() if v)
    

    【讨论】:

      【解决方案2】:

      有时,当您编写代码时,您必须退后一步并尝试按照您的意图进行,而不是尝试做一件特定的事情而错过整个大局。在 python 中,您有一个称为列表/字典理解的功能,您可以使用它来过滤输入以获得您想要的结果。因此,您想过滤掉字典中所有为 0 的值,就是这样:

      {k, v for k, v in d.items() if v != 0}
      

      现在,字典是哈希表,默认情况下它们是不可排序的,但是collections 中有一个类可以帮助您解决这个问题。使用OrderedDict类方便排序,代码最终会是这样:

      OrderedDict(sorted(((k, v) for k, v in d.items() if v != 0)), key=lambda t: t[0])
      

      此外,极不建议使用与内置类型或方法相同的名称来命名变量,例如 dict

      【讨论】:

        猜你喜欢
        • 2019-05-04
        • 2015-12-27
        • 2021-11-18
        • 1970-01-01
        • 1970-01-01
        • 2011-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多