Re: [問題] 關於Index

看板Python作者 (←這人是超級笨蛋)時間7年前 (2017/04/08 00:59), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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,
炫技解法:operator.itemgetter 或 filter
04/05 16:20

04/07 11:03,
測試了一下 u大的標準解法沒問題 炫技我還不知道怎用XD
04/07 11:03

04/07 11:05,
Z大的方法not in & in都 ok
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
文章代碼(AID): #1OvyM4aJ (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1OvyM4aJ (Python)