在Python中将1D列表分成两部分

时间:2015-01-04 11:47:02

标签: python list sorting select

我从数据表中获取了两个一维列表xy(未知的巨大长度)。

我想将x < 5和相应的y值的值放到一个set列表中,比如{x1, y1}

此外,我希望将x > 6和相应的y值的值放入另一个set列表中,例如{x2, y2}。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

这是一个选项

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的标准应该是什么。