如何仅向列表中的 y 坐标添加值?

How do you add value to only y coordinates in a list?

我目前正在做一个学校项目,我需要在 python 中编写一个程序,从坐标列表中减去一个值。 我不允许使用 import 让事情变得更简单。

我有清单:[[1,2],[2,3],[3,4]] 我需要从该列表中每个列表中的第二个值中减去一个值。

举个例子:[[1,2],[2,3],[3,4]]
变成:[[1,1],[2,2],[3,3]]

这是我目前的代码:

def coordinates(y):
    for i in (y):
        (i[1] - 5)
        return (y)

不过我就是无法让它工作。有谁知道这样做的好方法吗?

编辑:

如果有人遇到同样的问题,ShyGuyRyRyRyNewlyTheDataGuy 的代码非常有效!

def coordinates(l):
    for i in range(len(l)):
        l[i][1] = l[i][1] - 1
    return l

鉴于您总是试图从 y 坐标中减去,索引到列表的列表集将提供最简单的问题解决方案。

下面从列表的第二个坐标减去 1,returns 列表。

def coordinates(l):
    for i in range(len(l)):
        l[i][1] = l[i][1] - 1
    return l

假设您不想修改原始列表。在那种情况下:

def coordinates(l, n=1):
    return [[x, y-n] for x, y in l]

print(coordinates([[1,2],[2,3],[3,4]]))

输出:

[[1, 1], [2, 2], [3, 3]]

我认为你应该通过将函数需要知道的所有内容作为参数传递给函数而不是将所有内容硬编码到函数中来使函数通用——这将允许它与不同的列表一起重用 and/or 数量。

以下说明了我的意思:

def add_y(coords, y):
    for coord in coords:
        coord[1] += y
    return coords

data = [[1,2],[2,3],[3,4]]

print(data)  # -> [[1, 2], [2, 3], [3, 4]]
data = add_y(data, -1)
print(data)  # -> [[1, 1], [2, 2], [3, 3]]