在 python 中将一维列表分成两部分

Cutting 1D list into two parts in python

我有两个一维列表 xy(未知的巨大长度)取自数据 table。

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