python - python中重复坐标的求和属性

标签 python python-3.x list

我正在查看我的坐标数据,由于某些预处理,我看到一些具有不同参数的重复坐标。我希望能够合并与匹配坐标对应的属性并获得简化的结果。为了阐明我的意思,这里有一个例子:

X = [1.0, 2.0, 3.0, 2.0]
Y = [8.0, 3.0, 4.0, 3.0]
A = [13, 16, 20, 8]

以上数据读取如下:点(1.0, 8.0)的值为13,(2.0, 3.0)的值为16,注意第二个点和第四个点的坐标相同,属性值不同.我希望能够从坐标列表中删除重复项并对属性求和,以便结果将是新列表:

New_X = [1.0, 2.0, 3.0]
New_Y = [8.0, 3.0, 4.0]
New_A = [13, 24, 20]

24是坐标相同的第二个点和第四个点的16和8的和,所以保留一个点求和。

我不确定该怎么做,我想过使用嵌套的 for 坐标 zip 循环,但我不确定如何制定它来对属性求和。

感谢任何帮助!

最佳答案

我认为维护 3 个列表有点尴尬。像这样的东西:

D = dict()
for x,y,a in zip(X,Y,A):
    D[(x,y)] = D.get((x,y),0) + a

将所有内容放在一个地方。

如果您希望将其分解回 3 个列表:

for (x,y),a in D.items():
    newX.append(x)
    newY.append(y)
    newA.append(a)

关于python - python中重复坐标的求和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51070068/

相关文章:

python - 在变量赋值中使用换行符

c# - 使用 LINQ 使用相同的值填充 List<string>

python - 如何实现一个以非全连接层作为最后一层的神经网络?

python - 如何设置子图 Axis 范围

python - 我可以在 Python 3.6 之前的版本中使用 secrets 模块吗?

python - 当 GUI 退出时终止 QThread

python - 在包含 python 字符串的列表中提取列表

python - 如何在列表理解中修改 Python 列表的最后一个元素?

python:安装anaconda后,如何导入pandas

python - 两步算法:将输入字符串映射到输出字符串