概述
就速度而言,你可能想利用字典。似乎不管怎样,您都需要遍历一个列表。字典当然比迭代列表快,所以你至少可以把一个列表变成dict(我测试了下面的解决方案,在两个单独的列表中有200000个条目,我的平均速度是0.109999秒。如果你只是尝试使用列表或元组,你可能不会接近这个目标,除非你的条目顺序允许你使用类似zip的东西。您的序列号似乎是唯一的,因此下面的方法是可行的(通过迭代一个列表,然后将第1、3和4项[位置0、2和3]与字典中的值进行比较):list_1 = [[1, "BMW", "Boston", "01Jan2013"], [37, "Chevrolet", "Denver", "05Jan2013"],
[854, "BMW", "Boston", "01Jan2013"]]
list_2 = [[1, "Mercedes", "Boston", "01Jan2013"], [37, "Chevrolet", "Denver", "05Jan2013"],
[854, "Toyota", "Boston", "01Jan2013"]]
dict_2 = dict()
for elem in list_2:
dict_2[elem[0]] = elem[1:]
for item in list_1:
if dict_2[item[0]][1:] == item[2:]: # Have to offset the index since dict list only has three elements
print item
[1, 'BMW', 'Boston', '01Jan2013']
[37, 'Chevrolet', 'Denver', '05Jan2013']
[854, 'BMW', 'Boston', '01Jan2013']
一旦您将第二个列表转换为字典,您只需遍历一个列表就可以得到结果。此解决方案将从列表1返回每个匹配项的整个子列表,这似乎是您想要的。如果要从两个列表中获取完全匹配的子列表,则可以使用以下方法:
^{pr2}$
最后
以上就是完美狗为你收集整理的python 字典查询比列表快_Python:哪个更快:匹配列表还是匹配字典?的全部内容,希望文章能够帮你解决python 字典查询比列表快_Python:哪个更快:匹配列表还是匹配字典?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复