peraperson 发表于 2014-6-29 17:51:49

如何提取表中的子表

((4 <图元名: 7ef69248> 2 (0 (1 1 1)) (0 (2 2 2))))
请问如何把上面那个表提取成(( 1 1 1) (2 2 2))?

注:用了(setq newlst (mapcar '(lambda (x) (cdr (cdr (cdr (cdr x))))) lst)) 得到的是 (((0 (2 2 2))))

edata 发表于 2014-6-29 19:30:10

_$ (setq lst '((4 <图元名: 7ef69248> 2 (0 (1 1 1)) (0 (2 2 2)))))
(setq newlst (mapcar 'cadr (cddddr(car lst))))
((4 <图元名: 7EF69248> 2 (0 (1 1 1)) (0 (2 2 2))))
((1 1 1) (2 2 2))
_$

Andyhon 发表于 2014-6-29 19:35:50

try
(mapcar 'cadr (cdddar Lst))

ivde 发表于 2014-6-29 19:36:25

mapcar last cdr cdr. cdr

peraperson 发表于 2014-6-29 19:49:50

实在是太谢谢上面三位大大了 明经真是个有爱的地方

peraperson 发表于 2014-6-29 21:06:47

不好意思哈 再追问一个问题
‘((lst1 lst2 lst3)(lst4 lst5) (lst6 lts7) ) 这种如何整合成表’(lst1 lst2 lts3 lts4 lts5 lts6 lts7)?
谢谢

edata 发表于 2014-6-29 21:18:05

(apply 'append '((1 2 3)(2 3) (4 5)))
(1 2 3 2 3 4 5)

peraperson 发表于 2014-6-29 22:05:14

edata 发表于 2014-6-29 21:18 static/image/common/back.gif


谢谢e大
页: [1]
查看完整版本: 如何提取表中的子表