我有兩個(x,y)座標數組。在對它們進行數學運算後,我問程序哪個答案小於300.返回Python對中的數組對的索引
我也想告訴我哪兩對(x,y)座標(一個來自數組a和1從數組b)被用來計算這個答案。我怎樣才能做到這一點?
編號:數組的內容是隨機的,它們的長度由用戶選擇(如下所示)。
這裏是我的代碼:
#Create arrays
xy_1 = [(random.randint(0,1000), random.randint(0,1000)) for h in range((int(raw_input(「Type your first array’s range: 「)))]
a = array([xy_1])
xy_2 = #same as above
b = array([xy_2])
(如果用戶選擇了xy_1有3個對和xy_2有2對,輸出應該是這樣的:
a[(1,5),(300,70),(10,435)]
b[(765,123),(456,20)]
每次使用不同的數字,因爲它是隨機數發生器)。
#Perform mathematical operation
for element in a:
for u in element:
for element in b:
for h in element:
ans = (((u[0] - h[0])**2) + ((u[1] - h[1])**2))
if ans <= 300:
#Problem here print "a: " + str(np.nonzero(u)[0]) + "b: " + str(np.nonzero(h)[0]) + "is less than 300"
else:
#and here print "a: " + str(np.nonzero(u)[0]) + "b: " + str(np.nonzero(h)[0]) + "is more than 300"
目前,輸出看起來是這樣的:
a: [0 1] b: [0 1] is less than 300
或
a: [0 1] b: [0 1] is more than 300
,但正如我上面所說的,我想它告訴我的索引(或任何它被稱爲數組)每個(的x,y)對在a和b,使得其看起來像這樣:
a: 15 b: 3 is less than 300
(如果它是在第15對座標和b中的第三對創建,這是一個結果小於300 )。
我已經嘗試使用zip與itertools.count,但它結束重複迭代太多次,所以這是了。
可能的重複[在給定包含Python的列表中的項目索引] (http://stackoverflow.com/questions/176918/finding-the-index-of-an-item-given-a-list-containing-it-in-python) – sashkello
感謝您的建議,但我試過索引,枚舉和itertools,正如帖子的答案所表明的那樣,並且他們都沒有工作到目前爲止。 – YerABlizzardHarry
然後看看這個:http://stackoverflow.com/questions/946860/using-pythons-list-index-method-on-a-list-of-tuples-or-objects – sashkello