在 python 中将一维列表分成两部分
Cutting 1D list into two parts in python
我有两个一维列表 x
和 y
(未知的巨大长度)取自数据 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 的标准应该是什么。
我有两个一维列表 x
和 y
(未知的巨大长度)取自数据 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 的标准应该是什么。