作者laputaca (離歌笑)
看板Python
標題[問題] 關於Index
時間Wed Apr 5 15:40:07 2017
各位大大好,小弟是剛從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://webptt.com/m.aspx?n=bbs/Python/M.1491378010.A.ED8.html
※ 編輯: laputaca (211.72.117.101), 04/05/2017 15:40:46
1F:推 sovereignty: 試試 numpy? 04/05 16:06
2F:→ uranusjr: 標準解法: [test[i] for i in index] (顛倒 not in) 04/05 16:19
3F:→ uranusjr: 炫技解法:operator.itemgetter 或 filter 04/05 16:20
4F:→ laputaca: COOL!! 感謝大大~~~ 04/05 16:33
5F:→ mikapauli: map(test.__getitem__, index) 04/05 18:57
6F:→ mikapauli: 不能用not in吧XD 04/05 19:15
7F:→ mikapauli: map(test.__getitem__, 04/05 19:26
8F:→ mikapauli: set(range(len(test))) - set(index) 04/05 19:28
9F:→ mikapauli: ) #反過來 04/05 19:29
10F:→ zerof: [i for idx, i in enumerate(test) if idx not in index] 04/05 21:05
11F:→ laputaca: 感謝各位熱心大大 04/07 10:54
12F:→ laputaca: 測試了一下 u大的標準解法沒問題 炫技我還不知道怎用XD 04/07 11:03
13F:→ laputaca: m大的 出來的output會像這樣: <map at 0x1cf29080> 04/07 11:04
14F:→ laputaca: 不知道有沒有辦法顯示內容? 04/07 11:04
15F:→ laputaca: Z大的方法not in & in都 ok 04/07 11:05
16F:→ s860134: 因為你在 python3 下面執行會是回傳 map object 04/07 12:44
17F:→ s860134: list(map_object) 即可拿到你要的資料 04/07 12:44