【发布时间】:2016-08-22 01:25:42
【问题描述】:
我有一本看起来像这样的字典:
myDict = { "age":value1,"size":value2,'weigth':value3 ... }
我只是想从这个字典中获取一个值列表,但是按照列表定义的某种顺序:
order_list = ["age","weigth","size", ... ]
所以结果会是:
result_list = [value1,value3,value2, ... ]
最简单的方法是这样遍历order_list:
for key in order_list:
result_list.append(myDict[key])
但我相信有一种更有效和更干净的方法来做我想做的事情,因为这种方法很昂贵,原因有两个:
- 列列表很长
- 我需要这样做 1000 次/秒
【问题讨论】:
-
与基准相关的线程:stackoverflow.com/questions/18453566/….
-
我不这么认为,字典是哈希表,所以检索是 O(1),总复杂度是 O(n),这是最优的。所以你可能应该尝试一些完全不同的东西
-
不,正如@BlackBear 指出的那样,你不会比
O(n)更好。稍加理解可能会被认为更简洁,但不会提高性能。 -
我为“重复”添加了一个额外的答案
标签: python list dictionary