ynhh 发表于 2014-12-15 15:51:55

判断表中某元素是否存在?

判断表中某元素是否存在?

(setq lst '("A1" "A2" "A3" "BA" "A7" "9A" "A00" "A22"))

(member "A2" lst) ;;;在表中搜索指定的表达式,并从第一次出现该表达式的位置开始返回表的其余部分

当运行以上内容后返回

("A2" "A3" "BA" "A7" "9A" "A00" "A22")

如这个表 lst 中内容太多时,则会花费很多时间,而我想只是判断这个"A2"是否存在lst 表中?并不需要返回后面的元素。

请问大师,是不是还有更好的方法?

感谢指点。。。

Andyhon 发表于 2014-12-15 16:14:24

...只是判断这个"A2"是否存在...
Try This
;; (vl-position symbol list)
(vl-position "A2" lst)

ynhh 发表于 2014-12-15 16:22:59

Andyhon 发表于 2014-12-15 16:14 static/image/common/back.gif
...只是判断这个"A2"是否存在...
Try This
;; (vl-position symbol list)


严重感谢长老
瞬间就指出问题所在
我研究了一天,终于在明经另外一处
http://bbs.mjtd.com/thread-92030-1-1.html
找到这个方法
正想来此反应
没想到长老回复的这么快
这么精通
真心感谢

llsheng_73 发表于 2015-8-25 11:18:09

ynhh 发表于 2014-12-15 16:22 static/image/common/back.gif
严重感谢长老
瞬间就指出问题所在
我研究了一天,终于在明经另外一处


vl-position和member都有一个问题,那就是它不带精度!
比如把一个多线段的顶点坐标弄成一个表,然后开启端点捕捉得到其中一个顶点的坐标,去掉z值,按说这个坐标它在刚才那个表中,但vl-position和member都有可能返回nil

edata 发表于 2015-8-25 19:34:05

llsheng_73 发表于 2015-8-25 11:18
vl-position和member都有一个问题,那就是它不带精度!
比如把一个多线段的顶点坐标弄成一个表,然后开 ...

精度1e-8是不是代表取值到八位小数,后面的不要了,再来position看是否有正返回,73兄觉得呢。

llsheng_73 发表于 2015-8-26 10:04:17

如果把所有数值都按预定精度处理一遍后,当然这两个函数都不再有问题。。。而这个额外的预处理正是这两个函数的短板

我来看MM的 发表于 2015-9-18 18:02:10

赞一个

cchessbd 发表于 2023-3-4 21:48:34

Andyhon 发表于 2014-12-15 16:14
...只是判断这个"A2"是否存在...
Try This
;; (vl-position symbol list)


6666,帅!
页: [1]
查看完整版本: 判断表中某元素是否存在?