[問題] 關於資料格式的取用[]和()

作者: max533 (向陽花)   2016-05-20 22:21:38
a = [[1997L,3L],[2001L,4L]]
b = array([[1997L,3L],[2001L,4L]])
這邊想取用讓 c = [1997L,2001L]
在取用b的情況下,我只要b[:,0] = c,
但在取用a的情況下,無法如此得到c,
想請問在不用迴圈的情況下,有辦法得到c嗎?
還有list和np.array的差異?
想釐清這邊觀念下的差異。
作者: IKAFIRE (沒有)   2016-05-20 22:43:00
c, _=zip(*a)但這方法略醜
作者: mikapauli (桜花)   2016-05-20 23:42:00
list(map(list.__getitem__, a, [0]*len(a)))
作者: SocketAM2 (AM2)   2016-05-21 00:20:00
樓上的作法好像不用加list,另也可以用lambda
作者: mikapauli (桜花)   2016-05-21 00:48:00
第一個list是讓python2和3的結果一樣
作者: SocketAM2 (AM2)   2016-05-21 00:53:00
喔喔喔 受教了 (沒用3真不知道)
作者: yjc1 (.來而色月踏我.)   2016-05-21 02:01:00
c=[t[0] for t in a] , 但這其實也是 loop
作者: IKAFIRE (沒有)   2016-05-21 02:41:00
list comprehension的可讀性高很多

Links booklink

Contact Us: admin [ a t ] ucptt.com