我有两个列表,包含点的x和y坐标,其中每个对应的元素代表一个点。
举个例子,X_List=[1,3,1,4],Y_List=[6,7,6,1],那么点就是(1,6)(3,7)(1,6)(4,1)。因此,最常见的点是(1,6)。
我的代码是:
Points=[]
for x,y in zip(X_List, Y_List):
Points.append([x,y])
MostCommonPoint = max(set(Points), key=Points.count)
但是,这将不能作为不可损坏类型的列表中的点工作。
Tags:
首先,
zip
返回一个元组列表(或python3中元组的迭代器)。这意味着您只需使用zip(X_List, Y_List)
而不是Points
(或者python3上的list(zip(X_List, Y_List))
),您的代码就可以工作了。然而,这需要二次方时间。在一种更快的方法是使用^{} ,这是一个dict子类,用于计数:
使用计数器:
它很简单:
^{pr2}$一步一步
构建点列表:
创建一个
counter
,它可以计算所有项目:获取(一)最常见项目的列表:
获取项目本身:
@jan vlcinsky是对的。另一个似乎有效的简单方法如下。不过,我还没有比较表演。在
相关问题 更多 >
编程相关推荐