Python 使用包含键顺序的列表从字典的值创建列表
我有一个字典,其中包含一定数量的键/值对,例如:Python 使用包含键顺序的列表从字典的值创建列表,python,python-2.7,Python,Python 2.7,我有一个字典,其中包含一定数量的键/值对,例如: 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 ] 如果我想获得元组,同样的问题。对于Python2.x,请尝试使用- >>> d = { "v1": 1, "v2":
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 ]
如果我想获得元组,同样的问题。对于Python2.x,请尝试使用-
>>> d = { "v1": 1, "v2": 2, "v3":3, "v4": 4 }
>>> l = [ "v2", "v3", "v1", "v4" ]
>>> map(d.get,l)
[2, 3, 1, 4]
如果您使用的是Python3.x,map
函数返回一个map
对象,您可以迭代该对象,以转换为list uselist
函数,例如-
>>> list(map(d.get,l))
[2, 3, 1, 4]
对于Python2.x,请尝试使用-
>>> d = { "v1": 1, "v2": 2, "v3":3, "v4": 4 }
>>> l = [ "v2", "v3", "v1", "v4" ]
>>> map(d.get,l)
[2, 3, 1, 4]
如果您使用的是Python3.x,map
函数返回一个map
对象,您可以迭代该对象,以转换为list uselist
函数,例如-
>>> list(map(d.get,l))
[2, 3, 1, 4]
对于Python2.x,请尝试使用-
>>> d = { "v1": 1, "v2": 2, "v3":3, "v4": 4 }
>>> l = [ "v2", "v3", "v1", "v4" ]
>>> map(d.get,l)
[2, 3, 1, 4]
如果您使用的是Python3.x,map
函数返回一个map
对象,您可以迭代该对象,以转换为list uselist
函数,例如-
>>> list(map(d.get,l))
[2, 3, 1, 4]
对于Python2.x,请尝试使用-
>>> d = { "v1": 1, "v2": 2, "v3":3, "v4": 4 }
>>> l = [ "v2", "v3", "v1", "v4" ]
>>> map(d.get,l)
[2, 3, 1, 4]
如果您使用的是Python3.x,map
函数返回一个map
对象,您可以迭代该对象,以转换为list uselist
函数,例如-
>>> list(map(d.get,l))
[2, 3, 1, 4]
删除list()使之在Python 2中变得更好。map返回一个
map对象
,我们可以对其进行迭代,在Python 3.x中尝试过,但是map()
在Python 2中返回一个list
,在Python 3中返回一个map
。对答案进行了编辑,将其包括在内。因为问题是针对Python 2.7的,首先更新2.x版本,然后更新3.x版本作为旁注删除列表()以在Python2中做得更好。map返回一个map对象
,我们可以对其进行迭代,在Python3.x中尝试过map()
在Python2中返回一个列表
,在Python3中返回一个映射
。编辑答案以将其也包括在内。由于问题是针对Python2.7的,请首先更新2.x版本,然后更新3.x版本作为旁注删除列表()为了在Python2中更好地实现这一点,map返回一个map对象
,我们可以对其进行迭代,在Python3.x中尝试过map()
在Python2中返回一个列表
,在Python3中返回一个map
。编辑了答案以包含该对象。因为问题是针对Python2.7的,首先更新2.x版本,然后更新3.x版本作为旁注删除列表()以在Python2中做得更好。map返回一个map对象
,我们可以对其进行迭代,在Python3.x中尝试过map()
在Python2中返回一个列表
,在Python3中返回一个映射
。编辑答案以将其也包括在内。由于问题是针对Python2.7的,请首先更新2.x版本,然后作为旁注更新3.x版本