我正在尝试提高一个脚本的效率,该脚本使用一个表示数据表的嵌套列表和一列id(每个id可能有许多条目)。该脚本统计具有100个以上条目和200个以上条目的ID数。你知道吗
有没有一种方法可以让我不必每次都用列表来循环阅读?你知道吗
list_of_IDs = [row[4] for row in massive_nested_list] ### get list of ID numbers
list_of_IDs = set(list_of_IDs) ### remove duplicates
list_of_IDs = list(list_of_IDs)
counter200 = 0
counter100 = 0
for my_ID in list_of_IDs:
temp = [row for row in massive_nested_list if row[4] == my_ID]
if len(temp) > 200:
counter200 += 1
if len(temp) > 100:
counter100 += 1
使用^{} instance 来计算您的id。不需要先收集所有可能的ID。然后您可以从那里整理计数:
给定N个嵌套列表中的K个惟一id,您的代码将使用O(KN)个循环来计算所有内容;最坏的情况(K==N)意味着您的解决方案需要二次时间(对于每增加一行,您需要多做N倍的工作)。上面的代码将no一个循环减少到N个项目上,然后将另一个循环减少到K个项目上,使其成为O(N)(线性)算法。你知道吗
最简单的方法是:
然后你可以去:
或者
相关问题 更多 >
编程相关推荐