在Python中,你可以做這樣的事情在(emacs)lisp中提取/切片/重新排列列表?
i = (0, 3, 2)
x = [x+1 for x in range(0,5)]
operator.itemgetter(*i)(x)
得到(1, 4, 3)
。 在(emacs的)口齒不清,我寫了這個函數調用提取物有類似的功能,
(defun extract (elems seq)
(mapcar (lambda (x) (nth x seq)) elems))
(extract '(0 3 2) (number-sequence 1 5))
,但我覺得應該有一些內置的?我所知道的是first, last, rest, nth, car, cdr
...要走什麼路? 〜提前致謝〜
不知道。所以對於這個問題,我必須決定創建一個向量的開銷是否值得恆定時間訪問的額外開銷。 – hatmatrix 2010-05-26 05:16:36