我有兩個一維列表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