Re: [問題] 關於Index
※ 引述《laputaca (離歌笑)》之銘言:
: test = [1,2,3,4,5,6]
: 在R可以直接使用test[0,3,4]
: 或是類似這種
: index = [0, 2, 5]
: test[ !index ]
: (意即我要位置 1, 3, 6)
→
04/05 16:20,
04/05 16:20
→
04/07 11:03,
04/07 11:03
→
04/07 11:05,
04/07 11:05
打太快想錯語法, 下面有人說了 not in 不行 XD
補一下炫技解法, 其實不太建議用, 不過如果哪天想寫 DSL 或許可以參考
>>> import operator
>>> test = [1, 2, 3, 4, 5, 6]
>>> operator.itemgetter(0, 3, 4)(test)
(1, 4, 5)
稍微包裝一下就可以滿像 R 的寫法
import collections.abc
import operator
class ListGetter:
def __init__(self, ls):
self._ls = ls
def __getitem__(self, key):
if isinstance(key, collections.abc.Sequence):
return list(operator.itemgetter(*indexes)(self._ls))
return self._ls[key]
ListGetter(test)[0, 3, 4] # [1, 4, 5]
再強調一次我並不推薦這樣做
--
╱ ̄ ̄ ̄╲
▏◢█◣ ▏
︻█︻█ ▏ 成龍表示: 是喔...
′/ ‵ ▏
╰╯ █╱
ψQSWEET ◥︶█◤
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.19.12
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1491584388.A.913.html
討論串 (同標題文章)