我有兩個列表,其中每個對應元素表示一個點,其中包含點的x座標和y座標。只是一個例子,X_List = [1,3,1,4],Y_List = [6,7,6,1],那麼點是(1,6)(3,7)(1,6)( 4,1)。因此,最常見的一點是(1,6)。Python:在相應的兩個列表中找到最常見的元素
這裏是我的代碼:
Points=[]
for x,y in zip(X_List, Y_List):
Points.append([x,y])
MostCommonPoint = max(set(Points), key=Points.count)
但是,這是行不通的工作作爲點在列表是unhashable類型。
您還可以使用counts.most_common(1)獲得(含列表)的最常見的一點。這簡單得多一點,並且節省了對集合的另一次迭代。 (在這種情況下可能不會節省很多,但總的來說很好。) – Weeble
@Weeble:'most_common(1)'最後調用'max'。用'[0] [0]'提取列表的一個元素,然後提取元素計數元組的第一部分,我認爲即使在代碼簡單性方面也是如此。 – user2357112
啊,夠公平的。我錯誤地認爲Counter內容是按順序維護的,但它看起來像most_common(n)使用heapq.nlargest遍歷集合。同意,一旦你考慮解構結果就會否定簡單的好處。 – Weeble