本帖最后由 zhhunicorn 于 2011-6-7 15:29 编辑
l_data=((一年级 班级1 王二 张三)(一年级 班级2 李四 赵五)(一年级 班级3 钱六 孙七)
(二年级 班级1 周八 吴九)(二年级 班级2 郑十 何一)(二年级 班级3 吕二 施三)
(三年级 班级1 冯四 陈五)(三年级 班级2 褚六 魏七)(三年级 班级3 蒋八 韩九))
我需要把它变成:
l_data=(
((一年级)(班级1 王二 张三)(班级2 李四 赵五)(班级3 钱六 孙七))
((二年级)(班级1 周八 吴九)(班级2 郑十 何一)(班级3 吕二 施三))
((三年级)(班级1 冯四 陈五)(班级2 褚六 魏七)(班级3 蒋八 韩九))
)
这个怎么搞?
我的代码:
 - (defun arrange_list(arrange_data / l_data tmp_data first_data line_data end_data)
- (setq first_data '()
- l_data '()
- end_data '()
- tmp_data '())
- (setq first_data (car (car arrange_data)))
- ;(setq l_data (list (list(car (car arrange_data))) (cdr (car arrange_data))))
- (setq l_data (append l_data (list first_data)))
- (setq l_data (append l_data ((cdr (car arrange_data)))))
- (foreach line_data arrange_data
- (progn
- (setq tmp_data (car line_data))
- (if (/= tmp_data first_data)
- (progn
- ;(append l_data (list tmp_data))
- ;(append l_data (cdr line_data))
- (setq end_data (list end_data (list l_data)))
- (setq l_data '())
- (setq l_data (append l_data (list tmp_data)))
- (setq l_data (append l_data (list(cdr line_data))))
- )
- (progn
- (setq l_data (append l_data (list(cdr line_data))))
- )
- );end of if
- );end of progn
- );end of foreach
- (setq end_data (append end_data (list l_data)))
- )
|