我有一个列表列表,我们称之为列表,如下所示:
[[Redditor(name='Kyle'), Redditor(name='complex_r'), Redditor(name='Lor')],
[Redditor(name='krispy'), Redditor(name='flyry'), Redditor(name='Ooer'), Redditor(name='Iewee')],
[Redditor(name='Athaa'), Redditor(name='The_Dark_'), Redditor(name='drpeterfost'), Redditor(name='owise23'), Redditor(name='invirtibrit')],
[Redditor(name='Dacak'), Redditor(name='synbio'), Redditor(name='Thosee')]]
该列表包含1000个元素(或列表)。我试图将这些中的每一个与成对的其他列表进行比较,并尝试获取每对列表的公共元素的数量。代码这样做:
def calculate(list1,list2):
a=0
for i in list1:
if (i in list2):
a+=1
return a
for i in range(len(thelist)-1):
for j in range(i+1,len(thelist)):
print calculate(thelist[i],thelist[j])
我的问题是:根据长度,每个列表对需要2秒或更长时间才能计算函数。我猜,这与我的列表结构有关。我在这里缺少什么?
答案 0 :(得分:2)
首先,我建议您在此处引用您的类hashable:What's a correct and good way to implement __hash__()?
然后,您可以通过执行以下操作使列表列表成为一组:
FormData();
然后你的功能会更快!