优化创建列表字典



我有一个下面的类

class Test:
self.value = 0
self.name = ''

我有数百万条记录,我只想根据它们的name对选择性记录进行排序。我创建了一个名为whitelist_names的单独列表。我制作字典列表对象的方式就像

'''input_value and input_name are being feed from a file-read'''
map_list = {}
t = Test(input_value, input_name)
if t.input_name in whitelist_names:
name_list = []
if t.input_name in map_list:
name_list = map_list[t.input_name]
name_list.append(t)
map_list[t.input_name] = name_list

上面的代码需要很长时间。我是python的新手,所以我只是想确定我做得对不对。

当您检查某个名称是否在列表中时,它需要一段时间,这是非常合乎逻辑的。如果白名单上的名字都是唯一的,你可以使用一个集合而不是列表。集合理解比列表理解快得多。

此外,我建议您使用字典,而不是实现一个类来保存名称及其显示次数。由于字典被实现为哈希映射,因此检查条目是否存在的速度非常快。

最新更新