我需要將很長列表中的每個項目(12471個項目)與同一列表中的每個其他項目進行比較。下面是我的列表:Python - 將列表中的每個項目與該列表中的每個項目進行比較
[array([3, 4, 5])
array([ 6, 8, 10])
array([ 9, 12, 15])
array([12, 16, 20])
array([15, 20, 25])
...] #12471 items long
我需要比較每個數組的第二項與每個其他數組的第一個項目,看他們是否相等。最好是以非常有效的方式。有沒有一種簡單而有效的方法來在Python 2.x中做到這一點?
我在這裏工作了一種非常原始的方法,但它是非常緩慢:
ls=len(myList) #12471
l=ls
k=0
for i in myList:
k+=1
while l>=0:
l-=1
if i[1]==myList[l][0]:
#Do stuff
l=ls
只是做了計算信封的背面:你有N^2的比較做N = 10^7。如果一次比較只需要1ns,它仍然需要一整天。 – Julien
你知道這些數組包含的值的範圍嗎?有沒有關於這些數組元素的可能值的其他信息? – Kevin
@凱文他們都是畢達哥拉斯三元組。我不確定這是否有幫助。 –