访问列表时遇到问题
我再次来到绝地圣殿寻求知识。有人能帮我理解为什么我可以访问此列表中的项目并将其设置为变量吗
命令:!sdtable表格
(70465.0 61660.0 0.0 0.0 62.0 0.0 2.0 17.5 34.75 0.0 12.0)
(setq R2(第n个2 sdtable))
61660
而不是从这个列表中:
命令sdtable2
((202000.0 70465.0 1.0零零零零45.0 0.3125零17.5 30.56 17.5 30.56)(202001.0 70465.0 2.0零零零21.25 0.375))
(setq D2(第2个sdtable2))
无
我希望我以一种可以理解的方式提出这一点。谢谢你的帮助。 你确定(nth 2 sdtable)是61660.0吗?nth是一个基于零的索引函数,因此它应该返回0.0。
(nth 2 sdtable2)返回列表的第三个元素。您的sdtable2只有2个元素(也是列表),因此nth返回nil。
autocad帮助 nth 2 lst=您正在获取列表中的第三个元素。在您的例子中,列表中只有2个元素。这就是为什么它是零。
(nth 0 lst)=列表中的第一项
(第n个1 lst)=列表中的第二项
(nth 2 lst)=列表中的第三项 你有一个简单的嵌套列表
(nth 0 lst) = (202000.0 70465.0 1.0 nil nil 45.0 0.3125 nil 17.5 30.56 17.5 30.56)
(nth 0 (nth 0 lst)) = 202000.0
(nth 1 (nth 0 lst)) = 70465.0
正如jdiaia所指出的那样
!sdtable2
((202000.0 70465.0 1.0零零零零45.0 0.3125零17.5 30.56 17.5 30.56)(202001.0 70465.0 2.0零零零21.25 0.375))
(length sdtable2)->2
sdtable2由2个列表组成,因此只有(nth 0和(nth 1)可以绑定到任何内容。
-大卫
页:
[1]