【发布时间】:2017-06-17 01:42:08
【问题描述】:
我经常在 Python 中使用列表推导式专门从键值字典创建列表,以排序方式,我在列表中定义排序键并使用推导式获取排序列表,我一直在环顾四周,但是除了使用地图之外,找不到在 Javascript 中执行以下操作的类似方法:
在 Javascript 中有没有更好的方法来做到这一点?
在 Python 中:
d = {'k2':'v2','k4':'v4','k3':'v3','k6':'v6','k5':'v5'}
list_keys=['k1','k2','k3','k4','k5','k6']
list_wanted_values = [d[c] for c in list_keys]
#list_wanted_values=['v1','v2','v3','v4','v5','v6']
在 Javascript 中:
var js_list_wanted_values = list_keys.map(function(k){
js_list_wanted_values[k] = d[k]
)}
【问题讨论】:
-
只是
python代码的注释:您不需要定义list_keys列表。你可以这样做:list_wanted_values = [d[c] for c in sorted(d.keys())]或list_wanted_values = [v for k, v in sorted(d.items(), key=lambda x: x[0])]以避免字典查找 -
@Ev.Kounis 感谢您的来信。这确实更优雅!
标签: javascript python list dictionary list-comprehension