明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2893|回复: 14

[函数] 三个数目一样的list函数合并问题。。。。

  [复制链接]
发表于 2011-7-2 12:47 | 显示全部楼层 |阅读模式
例如我有三个list表,{x1 x2…}{y1 y2…}{z1 z2…},如何合并为一个表{(x1 y1 z1)(x2 y2 z2) …}
"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

发表于 2011-7-2 13:00 | 显示全部楼层
(list '(1 2) '(3 4) '(5 6))->((1 2) (3 4) (5 6))
(append '(1 2) '(3 4) '(5 6))->((1 2 3 4 5 6))
发表于 2011-7-2 13:20 | 显示全部楼层

  1. (defun c:aaa ()
  2.   (setq aaa '(x1 x2 x3 x4))
  3.   (setq bbb '(y1 y2 y3 y4))
  4.   (setq ccc '(z1 z2 z3 z4))
  5.   (setq        n   (length aaa)
  6.         m   0
  7.         lst '()
  8.   )
  9.   (while (/= n m)
  10.     (setq lst1 (list (nth m aaa) (nth m bbb) (nth m ccc)))
  11.     (setq lst (cons lst1 lst))
  12.     (setq m (1+ m))
  13.   )
  14.   (reverse lst)
  15. )
 楼主| 发表于 2011-7-2 13:20 | 显示全部楼层
如果是把几个表中相同位置的元素提取合为一项呢?
 楼主| 发表于 2011-7-2 13:21 | 显示全部楼层
回复 zhynt 的帖子

哈哈,谢谢,就是这个效果!…………
发表于 2011-7-2 13:24 | 显示全部楼层
回复 tm20038175 的帖子

还可以加上三个表长度的判段,取最短表的长度为n
发表于 2011-7-2 15:18 | 显示全部楼层
本帖最后由 caoyin 于 2011-7-2 15:32 编辑

;;这个方法无需判断各个表长度,自动取短
(mapcar '(lambda (x y z) (list x y z))
'(11 12 13 14 15)
'(21 22 23 24)
'(31 32 33 34 35 45 55)
)
->
((11 21 31) (12 22 32) (13 23 33) (14 24 34))

--------------------------------------------------------------------
;;
(setq A '((11 21 31) (12 22 32) (13 23 33) (14 24 34)))
(mapcar 'car A)->(11 12 13 14)
(mapcar 'cadr A)->(21 22 23 24)
(mapcar 'caddr A)->(31 32 33 34)
(mapcar 'last A)->(31 32 33 34)
发表于 2011-7-2 15:47 | 显示全部楼层
本帖最后由 highflybir 于 2011-7-2 15:50 编辑


(defun trp (m)
  (apply 'mapcar (cons 'list m))
)

例如
Command: (trp '((x1 x2 x3 x4 x5) (y1 y2 y3 y4 y5) (z1 z2 z3 z4 z5)))
((X1 Y1 Z1) (X2 Y2 Z2) (X3 Y3 Z3) (X4 Y4 Z4) (X5 Y5 Z5))


 楼主| 发表于 2011-7-2 16:12 | 显示全部楼层
回复 caoyin 的帖子

高!太高 !言简意赅,大师级人物才写的出来啊。。。。。
赞一个!………
发表于 2011-7-2 16:29 | 显示全部楼层
回复 tm20038175 的帖子

8楼highflybir 版主才是大师级的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-24 15:03 , Processed in 0.564701 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表