我从数据表中获取了两个一维列表x
和y
(未知的巨大长度)。
我想将x < 5
和相应的y
值的值放到一个set
列表中,比如{x1, y1}
。
此外,我希望将x > 6
和相应的y
值的值放入另一个set
列表中,例如{x2, y2
}。
我该怎么办?
答案 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的标准应该是什么。