2016-12-04 89 views
1

嗨,只是一個初學者在python中。無法弄清楚如何做到這一點。我有一個多邊形及其頂點座標列表保留列表中的特定子列表項目

list = [[1,2,3],[1,4,5],[1,3,3],[2,7,8] ,[2,9,9],[2,34,50],[3,6,0]]

每個子列表中的第一項是標識符(多邊形編號),其餘兩個是該多邊形的標識符或座標。

我想找到多邊形1和多邊形2的質心。如果多邊形3只有一個座標,則會導致錯誤。我該怎麼做呢 ?

+1

你已經有什麼代碼了? – alphaloop

+0

我能夠從父列表中分離出兩個列表。一個列表包含多邊形標識符,另一個列表包含x和y座標列表。我的挑戰是如何選擇標識符爲1的所有多邊形的x和y座標,以此類推... – james

+0

我會試試這個: 我在列表中: 如果我[0] == 1: 對於範圍內的x(0,len(i)): 如果x == 0: continue print i [x] #this應該是爲字符串的最後部分打印的所有數字 –

回答

0

這將使你在一個給定的多邊形點:

def get_polygon_points(polygon_id, points_list): 
    return [(x, y) for i, x, y in points_list if i == polygon_id] 

如果您寫信find_centroid函數,它的座標表(我會離開,給你),你可以撰寫他們一起寫這樣的事情:

points_list = [[1,2,3],[1,4,5],[1,3,3],[2,7,8],[2,9,9],[2,34,50],[3,6,0]] 
centroid_1 = find_centroid(get_polygon_points(1, points_list))