python - 如何在 python 中成对修改列表中的值?

标签 python python-3.x

我有以下代码:

# defines a square with 4 vertices: (1, 1), (1, 5), (5, 5), (5, 1)
coords = [1, 1, 1, 5, 5, 5, 5, 1]
new_coords = []
for i in range(0, len(coords), 2):
   x = transform_x(coords[i])
   y = transform_y[coords[i + 1])
   new_coords.append(x)
   new_coords.append(y)

我可以使用单行列表初始化重写它吗(如果不能,最简洁的方法是什么)?例如:

new_coords = [... for x, y in nums[::2], nums[1::2]]

最佳答案

您可以在嵌套列表理解中压缩 x 和 y 的切片:

new_coords = [i for x, y in zip(coords[::2], coords[1::2]) for i in (transform_x(x), transform_y(y))]

关于python - 如何在 python 中成对修改列表中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55487662/

相关文章:

Python 列表 'in' 语句无法正常工作

python - 这段使用 lambda 的 python 代码有什么问题?

python-3.x - 在后台使用 selenium chrome 浏览器(不是 headless 模式)?

Python Pandas Excel 显示

python - 在numpy数组中查找多个值的行索引

python-3.x - 从 Pandas 列中删除 unicode '\xa0'

python - 我可以用 kivy 语言编写动画吗?

python - (最简单)在同一台计算机上使用 Python 3.6 和 3.7 的方法?

python - python3 : No module named release 上的 MySQLdb

python - GroupBy 结果到列表字典