f4800 发表于 2022-2-14 08:41:53

关于表的运算请教 表中的第二个数据再加减-个数值

本帖最后由 f4800 于 2022-2-14 08:53 编辑

请教各位大师
怎样把表1排列横排变成竖排
((-14 0.6) (-11 0.5) (-10 0.4) (-6 0.3) (-4 0.2) (-2 0.1))

转换为表2
(-14 0.6)
(-11 0.5)
(-10 0.4)
(-6 0.3)
(-4 0.2)
(-2 0.1)

然后,表2 中的第二个数据再加减-个数值?
比如表2 中的第二个数据同时相加 2
最终的是
(-14 2.6)
(-11 2.5)
(-10 2.4)
(-6 2.3)
(-4 2.2)
(-2 2.1)

多谢指导

lijiao 发表于 2022-2-14 08:54:14

_$ (setq lst1 '((-14 0.6) (-11 0.5) (-10 0.4) (-6 0.3) (-4 0.2) (-2 0.1)))
((-14 0.6) (-11 0.5) (-10 0.4) (-6 0.3) (-4 0.2) (-2 0.1))
_$ (foreach x lst1 (princ x) (princ "\n") (princ))
(-14 0.6)
(-11 0.5)
(-10 0.4)
(-6 0.3)
(-4 0.2)
(-2 0.1)
_$ (foreach x lst1 (princ (list (car x) (+ 2 (cadr x)))) (princ "\n") (princ))
(-14 2.6)
(-11 2.5)
(-10 2.4)
(-6 2.3)
(-4 2.2)
(-2 2.1)
_$
你的所谓表2,其实不能称其为表,只能叫显示方式

vormittag 发表于 2022-2-14 09:50:22

第一个问题不存在,横着竖着还是斜着只是显示方式,数据结构没有变;
第二个问题:
(setq lst '((-14 0.6) (-11 0.5) (-10 0.4) (-6 0.3) (-4 0.2) (-2 0.1)))
(mapcar '(lambda(x) (mapcar '+ '(0 2.) x) ) lst)

f4800 发表于 2022-2-14 10:29:03

vormittag 发表于 2022-2-14 09:50
第一个问题不存在,横着竖着还是斜着只是显示方式,数据结构没有变;
第二个问题:

多谢大师指导还不熟悉所以 才提出来横排 竖排问题

f4800 发表于 2022-2-14 10:30:35

lijiao 发表于 2022-2-14 08:54
_$ (setq lst1 '((-14 0.6) (-11 0.5) (-10 0.4) (-6 0.3) (-4 0.2) (-2 0.1)))
((-14 0.6) (-11 0.5) (-1 ...

多谢大师指导我测试下   多谢

f4800 发表于 2022-2-14 12:40:45

lijiao 发表于 2022-2-14 08:54
_$ (setq lst1 '((-14 0.6) (-11 0.5) (-10 0.4) (-6 0.3) (-4 0.2) (-2 0.1)))
((-14 0.6) (-11 0.5) (-1 ...


(defun TT-STR (lst1NUM / )       
        ;(foreach x lst1 (princ x) (princ "\n") (princ))
        (foreach x lst1 (princ (list (car x) (+ NUM (cadr x)))) (princ "\n") (princ))       
)

(setq lst1 '((-14 0.6) (-11 0.5) (-10 0.4) (-6 0.3) (-4 0.2) (-2 0.1)))
(TT-STR lst1 36 )


=====<飞诗Lisp编辑器 2022/2/14 12:40:10>=====
(-14 36.6)
(-11 36.5)
(-10 36.4)
(-6 36.3)
(-4 36.2)
(-2 36.1)


大师这样好像也可以..

f4800 发表于 2022-2-15 22:17:16

本帖最后由 f4800 于 2022-2-15 22:20 编辑

lijiao 发表于 2022-2-14 08:54
_$ (setq lst1 '((-14 0.6) (-11 0.5) (-10 0.4) (-6 0.3) (-4 0.2) (-2 0.1)))
((-14 0.6) (-11 0.5) (-1 ...
大师 还有一个情况
假如我的记事本内容如下:0.000
4 2.0 0.1 3.0 0.1 7.0 0.1 8.0 0.1
6 2.0 0.1 2.0 0.1 2.0 0.1 4.0 0.1 1.0 0.1 3.0 0.1

用 READ-LINE 读取后得到的字符串
"0.000"
"4 2.0 0.1 3.0 0.1 7.0 0.1 8.0 0.1"
"6 2.0 0.1 2.0 0.1 2.0 0.1 4.0 0.1 1.0 0.1 3.0 0.1"

总是会添加 "这个符号,再用 LIST 函数转换为点表后会变成这样
("4 2.0 0.1 3.0 0.1 7.0 0.1 8.0 0.1")   但是为多了个 " 符号, 点表无法参与数学计算
如何解决这个问题?多谢





yxp 发表于 2022-2-15 22:26:25

f4800 发表于 2022-2-15 22:17
大师 还有一个情况
假如我的记事本内容如下:0.000
4 2.0 0.1 3.0 0.1 7.0 0.1 8.0 0.1


(read (strcat "(" "6 2.0 0.1 2.0 0.1 2.0 0.1 4.0 0.1 1.0 0.1 3.0 0.1" ")"))

f4800 发表于 2022-2-15 22:49:46

yxp 发表于 2022-2-15 22:26
(read (strcat "(" "6 2.0 0.1 2.0 0.1 2.0 0.1 4.0 0.1 1.0 0.1 3.0 0.1" ")"))

多谢大师。。。OK了
页: [1]
查看完整版本: 关于表的运算请教 表中的第二个数据再加减-个数值