【问题标题】:Create list from values of a dictionary using a list containing the order of the keys [duplicate]使用包含键顺序的列表从字典的值创建列表[重复]
【发布时间】:2015-09-13 17:47:16
【问题描述】:

我有一本字典,其中包含一定数量的键/值对,例如:

d = { "v1": 1, "v2": 2, "v3":3, "v4": 4 }

还有一个按特定顺序包含键的列表:

l = [ "v2", "v3", "v1", "v4" ]

如何以优雅的方式使用l 的顺序获取值列表?

[ 2, 3, 1, 4]

我唯一能想到的是:

[ d[k] for k in l ]

如果我想获得一个元组,同样的问题。

【问题讨论】:

    标签: python python-2.7


    【解决方案1】:

    对于 Python 2.x,请尝试使用 -

    >>> d = { "v1": 1, "v2": 2, "v3":3, "v4": 4 }
    >>> l = [ "v2", "v3", "v1", "v4" ]
    >>> map(d.get,l)
    [2, 3, 1, 4]
    

    如果您使用的是 Python 3.x,map 函数返回一个您可以迭代的 map 对象,用于转换为列表使用 list 函数,示例 -

    >>> list(map(d.get,l))
    [2, 3, 1, 4]
    

    【讨论】:

    • 删除 list() 以使其在 Python 2 中变得更好。
    • map 返回一个map object,我们可以对其进行迭代,不过在 Python 3.x 中尝试过
    • map() 在 Python 2 中返回 list,在 Python 3 中返回 map
    • 编辑了答案以包含它。
    • 由于问题是针对 python 2.7 的,因此请先更新 2.x 版本,然后再更新 3.x 版本作为旁注
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 2019-09-25
    • 2019-09-27
    • 1970-01-01
    相关资源
    最近更新 更多