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]
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]
我認爲list comprehensions是最直接的方法:
xs = [p[0] for p in pp]
ys = [p[1] for p in pp]
使用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]
使用列表理解:
pp=[[0,0] , [-1,5], [2,3], [1,5], [3,6], [4,5], [5,3], [8,-2], [4, -4], [2, -5]]
ppx=[a[0] for a in pp]
ppy=[a[1] for a in pp]
更多的Python文檔列表理解: http://docs.python.org/2/tutorial/datastructures.html#list-comprehensions