2014-01-22 49 views
1

y值我有列表這樣的:提取x和從列表

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] 

回答

8

我認爲list comprehensions是最直接的方法:

xs = [p[0] for p in pp] 
ys = [p[1] for p in pp] 
8

使用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]