在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