作者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/cn.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