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

看板Python作者 (向陽花)時間8年前 (2016/05/20 22:21), 編輯推噓2(206)
留言8則, 4人參與, 最新討論串1/1
a = [[1997L,3L],[2001L,4L]] b = array([[1997L,3L],[2001L,4L]]) 這邊想取用讓 c = [1997L,2001L] 在取用b的情況下,我只要b[:,0] = c, 但在取用a的情況下,無法如此得到c, 想請問在不用迴圈的情況下,有辦法得到c嗎? 還有list和np.array的差異? 想釐清這邊觀念下的差異。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.24.35 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1463754100.A.8B8.html

05/20 22:43, , 1F
c, _=zip(*a)
05/20 22:43, 1F

05/20 22:44, , 2F
但這方法略醜
05/20 22:44, 2F

05/20 23:42, , 3F
list(map(list.__getitem__, a, [0]*len(a)))
05/20 23:42, 3F

05/21 00:20, , 4F
樓上的作法好像不用加list,另也可以用lambda
05/21 00:20, 4F

05/21 00:48, , 5F
第一個list是讓python2和3的結果一樣
05/21 00:48, 5F

05/21 00:53, , 6F
喔喔喔 受教了 (沒用3真不知道)
05/21 00:53, 6F

05/21 02:01, , 7F
c=[t[0] for t in a] , 但這其實也是 loop
05/21 02:01, 7F

05/21 02:41, , 8F
list comprehension的可讀性高很多
05/21 02:41, 8F
文章代碼(AID): #1NFnrqYu (Python)