我有两个一维列表x
和y
(未知的巨大长度)取自一个数据表。在Python中切割一维列表为两部分
我想取值x < 5
和相应的y
值到列表的一个set
,说{x1, y1}
。
另外我想x > 6
的值和相应的y
值到列表的另一个set
,说{x2, y2
}。
我该怎么办?
我有两个一维列表x
和y
(未知的巨大长度)取自一个数据表。在Python中切割一维列表为两部分
我想取值x < 5
和相应的y
值到列表的一个set
,说{x1, y1}
。
另外我想x > 6
的值和相应的y
值到列表的另一个set
,说{x2, y2
}。
我该怎么办?
这里有一个选项
z = zip(x,y) #z = [(x[0],y[0]), ...]
smaller = [(xval,yval) for (xval,yval) in z if xval<= 5] #those with x<=5
larger = [(xval,yval) for (xval,yval) in z if xval>=6] #those with x>=6
x1,y1 = map(list,zip(*smaller)) #break them apart and make the results lists, not tuples.
x2,y2 = map(list,zip(*larger))
这是一种很酷如何zip(*list)
撤销list = zip(.,.)
。请注意,如果x=5.5
是一个选项,则此代码中存在一个错误。最好把它看作xval> 5的大型案件,但我没有这样做,因为从你的问题不清楚5.5的标准应该是什么。
你可以说一下你试过的东西吗? – Joel 2015-01-04 11:53:21
例如,数组x具有从0到10的1000个值,并且数组y具有对应的值。现在我想要一个数组x1(来自x),其值为0至5,另一个x2的值为6至10,y1和y2中的对应值也是如此。 – user43280 2015-01-04 11:57:49
'数组'在Python中不存在。它们被称为'list's(编辑) – Jivan 2015-01-04 12:08:39