【发布时间】:2010-10-01 20:31:40
【问题描述】:
我有一本字典和一个列表。该列表由值组成。字典包含所有值以及更多值。
我正在尝试计算列表中的值出现在字典中每个键/值对的次数。
看起来像这样:
for k in dict:
count = 0
for value in dict[k]:
if value in list:
count += 1
list.remove(value)
dict[k].append(count)
我的列表中有大约 100 万个条目,因此每次搜索都非常慢。
有没有更快的方法来做我想做的事情?
谢谢, 罗汉
【问题讨论】:
-
我愿意这是作业。这是一个非常好的练习,可以在对频率进行任何查找之前摊销计算列表中所有频率的成本。
-
您需要提供您正在使用的代码:因为此代码似乎有问题:for k in a: k 的类型将取决于字典中键的类型。您还使用 list[k] ,这表明 k 的类型为 int 有一个约束,因此它可以是一个索引。也没有检查 IndexError: list index out of range。您能更具体地说明您的代码吗?
-
我不明白这段代码的最后一行应该做什么。
-
您要删除的数据集大小是多少?
标签: python list dictionary