首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测list中是否存在元素?

如何检测list中是否存在元素?
EN

Stack Overflow用户
提问于 2018-02-22 18:08:39
回答 2查看 34关注 0票数 1

有没有办法测试一个元素是否存在于list中?

$ qore -nX 'boolean(select ("a", "b", "c"), $1 === "a")'

这个解决方案创建一个新的列表只是为了测试它的大小...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-28 23:00:13

实际上有一个语言函数可以做到这一点!inlistinlist_hard

票数 0
EN

Stack Overflow用户

发布于 2018-02-23 15:34:02

如果元素不重复,那么您的解决方案还不错,因为只会返回单个元素列表。

对于更有效的一般解决方案,您可以同时使用foldlmap运算符,这两个运算符都支持lazy functional evaluation,因此在复合表达式执行期间不会创建中间列表。

例如:

代码语言:javascript
复制
$ qore -nX '(foldl $1 + $2, (map 1, ("a", "b", "c", "a"), $1 === "z")).toBool()'
False
$ qore -nX '(foldl $1 + $2, (map 1, ("a", "b", "c", "a"), $1 === "a")).toBool()'
True

请注意,您可以去掉上面表达式中的.toBool()伪方法调用,以直接获得元素在列表中出现的次数。然而,这种解决方案的一个缺点是,它扫描整个列表,而不是在找到第一个匹配项时立即停止。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48924654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档