从列表中提取x和y的值

7
我有一个这样的列表:
pp=[[0,0] , [-1,5], [2,3], [1,5], [3,6], [4,5], [5,3], [8,-2], [4, -4], [2, -5]]

我想要将x和y值分别提取到不同的列表中,例如:

ppx= [0, -1, 2, 1, 3, 4, 5, 8, 4, 2]
3个回答

11
我认为列表推导式是最简单直接的方法:
xs = [p[0] for p in pp]
ys = [p[1] for p in pp]

10

使用zip()分离坐标:

ppx, ppy = zip(*pp)

这会生成元组;这些可以很容易地映射到list对象:
ppx, ppy = map(list, zip(*pp))

这适用于Python 2和3(其中map()迭代器被扩展用于元组分配)。
演示:
>>> pp=[[0,0] , [-1,5], [2,3], [1,5], [3,6], [4,5], [5,3], [8,-2], [4, -4], [2, -5]]
>>> ppx, ppy = zip(*pp)
>>> ppx
(0, -1, 2, 1, 3, 4, 5, 8, 4, 2)
>>> ppy
(0, 5, 3, 5, 6, 5, 3, -2, -4, -5)
>>> ppx, ppy = map(list, zip(*pp))
>>> ppx
[0, -1, 2, 1, 3, 4, 5, 8, 4, 2]
>>> ppy
[0, 5, 3, 5, 6, 5, 3, -2, -4, -5]

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接