首页 > 解决方案 > 从 Python 列表中删除坐标

问题描述

这是我上一个问题的后续问题: Python3 Numpy np.where Error

我有 2 个这样的列表:

x = [None,[1, 15, 175, 20],
    [150, 175, 18, 20],
    [150, 175, 18],
    [192, 150, 177],...]


y = [None,[12, 43, 55, 231],
    [243, 334, 44, 12],
    [656, 145, 138],
    [12, 150, 177],
    [150, 177, 188],...]

我想删除x低于 30的y值和对应于已删除值的x值。(例如,(x,y) = (1,12)x[1]和中y[1]

为了做到这一点,我得到了更正的x列表:

In : [[v2 for v2 in v1 if v2>=30] for v1 in x[1:]]
Out: [[175], [150, 175], [150, 175], [192, 150, 177]]

我还得到了剩余x值的坐标:

In : [(i,j) for i,v1 in enumerate(x[1:]) for j,v2 in enumerate(v1) if v2<30]
Out: [(0, 0), (0, 1), (0, 3), (1, 2), (1, 3), (2, 2)]

现在我想使用这些坐标从y.

我该如何实施?

标签: pythonlistcoordinates

解决方案


new_y = []
for i in range(len(y)):
    new_y.append([y[i][j] for j in range(len(y[i])) if (i,j) not in BadList])

BadList在哪里

[(i,j) for i,v1 in enumerate(x[1:]) for j,v2 in enumerate(v1) if v2<30]

推荐阅读