【发布时间】:2015-02-25 03:57:58
【问题描述】:
我有两个数据结构:一个列表和一个 defaultdict 字典。该列表包含 300,000 个数字的无序序列,字典包含与键相同的数字(顺序不同),对应的值是一些小整数。例如,列表可能类似于:l=[500,800,1500],那么对应的字典类似于 d={800:3, 1500:1, 500:4}。我的目标是创建另一个列表,其中仅包含字典 d 中每个键的对应值,按 l 的顺序排列。对于简单的示例,我想返回 [4,3,1](不是 [3,1,4])。我有一些简单的代码可以运行,但在 300,000 个数字上运行需要非常长的时间。
这是我所拥有的:
for k,v in d.iteritems():
for i in xrange(len(l)):
if(l[i]==k):
out[i]=v
有什么方法可以提高效率吗?
【问题讨论】:
标签: python performance list dictionary