在Python中,返回具有给定id的二维列表的一行(的副本)最有效(最快)的方法是什么



在Python中,返回具有给定id的二维列表的一行(的副本(的最有效(最快(方法是什么?每行的第一个元素是一个ID(字符串(。我的函数需要在二维列表中搜索具有匹配ID的行,并返回该行的副本。如果没有匹配项,则应返回None。

如果只做一次,那么迭代列表并检查第一个元素将是最好的。

如果你能预处理这个表,我建议你先转换成字典:

d = {row[0]: row for row in lst}

然后搜索:

d.get(id)

慢列表迭代(如果你不能使用dict,正如你在评论部分所指定的(:

for row in lst:
if row[0] == id:
break
else:
row = None

如果你真的想在不改变模型的情况下这样做,你需要进行O(n)搜索,但如果你真想优化速度,我强烈质疑选择这个选择,正如你在描述中提到的:

import copy

def find_element(data, id):
for entry in data:
if entry[0] == id:
return copy.copy(entry)
return None    

最新更新