看板 Python 關於我們 聯絡資訊
各位大大好,小弟是剛從R轉來Python的新手 想請教各位一個問題: 假設我有一個list test = [1,2,3,4,5,6] 就我所知的使用方法都是只能用slice 從xx開始 : xx結束 : 間隔多少取值 這樣的方式。 若是我想要抽出其中位置0,3,4 在R可以直接使用test[0,3,4] 而python中我找了蠻久的,似乎沒有直接的使用方法? 或是類似這種 index = [0, 2, 5] test[ !index ] (意即我要位置 1, 3, 6) 感謝各位大大解答~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.117.101 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1491378010.A.ED8.html ※ 編輯: laputaca (211.72.117.101), 04/05/2017 15:40:46
sovereignty: 試試 numpy? 04/05 16:06
uranusjr: 標準解法: [test[i] for i in index] (顛倒 not in) 04/05 16:19
uranusjr: 炫技解法:operator.itemgetter 或 filter 04/05 16:20
laputaca: COOL!! 感謝大大~~~ 04/05 16:33
mikapauli: map(test.__getitem__, index) 04/05 18:57
mikapauli: 不能用not in吧XD 04/05 19:15
mikapauli: map(test.__getitem__, 04/05 19:26
mikapauli: set(range(len(test))) - set(index) 04/05 19:28
mikapauli: ) #反過來 04/05 19:29
zerof: [i for idx, i in enumerate(test) if idx not in index] 04/05 21:05
laputaca: 感謝各位熱心大大 04/07 10:54
laputaca: 測試了一下 u大的標準解法沒問題 炫技我還不知道怎用XD 04/07 11:03
laputaca: m大的 出來的output會像這樣: <map at 0x1cf29080> 04/07 11:04
laputaca: 不知道有沒有辦法顯示內容? 04/07 11:04
laputaca: Z大的方法not in & in都 ok 04/07 11:05
s860134: 因為你在 python3 下面執行會是回傳 map object 04/07 12:44
s860134: list(map_object) 即可拿到你要的資料 04/07 12:44