Elisp 列表包含一个值

Posted

技术标签:

【中文标题】Elisp 列表包含一个值【英文标题】:Elisp List Contains a Value 【发布时间】:2010-11-27 09:29:35 【问题描述】:

如何在 elisp 中检查列表是否包含值?所以以下将返回 t:

(contains 3 '(1 2 3))

但是

(contains 5 '(1 2 3))

将返回零。

【问题讨论】:

【参考方案1】:

你需要的函数是member

例如:

(member 3 '(1 2 3))

它将返回 list 的尾部,其 car 是 element。虽然这不是严格意义上的t、any non-nil value is equivalent to true for a boolean operation。此外,member uses equal 用于测试相等性,使用 memq 以获得更严格的相等性(使用 eq)。

【讨论】:

更多详情请见gnu.org/software/emacs/emacs-lisp-intro/html_node/…【参考方案2】:

freiksenet's answer 很好而且惯用语。如果你使用dash.el,你也可以调用函数-contains?,它的作用完全一样——检查某个列表是否包含一个元素:

(-contains? '(1 2 3) 2) ; t

【讨论】:

以上是关于Elisp 列表包含一个值的主要内容,如果未能解决你的问题,请参考以下文章

将包含列表的记录值与 Postgres 中的列值进行比较

在包含字典的列表中获取最小值(键,值)

对象的 LINQ 检查列表包含一个值而不是其他一些值

在递减然后递增并且可能包含重复项的列表中查找最小值

测试列表是不是包含 Clojure 中的特定值

Python:如何检查列表是不是包含数值并返回布尔值?