gpt4 book ai didi

Clojure:列表或其他集合中值的索引

转载 作者:行者123 更新时间:2023-12-03 15:07:49 25 4
gpt4 key购买 nike

如何获取字符串列表中任何元素的索引,如下所示:

(list "a" "b" "c")

例如, (function "a")必须返回 0, (function "b") 1、 (function "c") 2等。

并且...如果处理很长的数据列表,使用任何其他类型的集合会更好吗?

最佳答案

我不确定我是否理解你的问题。你想要列表中每个字符串的第 n 个字母吗?这可以像这样完成:

(map #(nth % 1) (list "abc" "def" "ghi"))

结果是:
(\b \e \h)

更新

阅读您对我的初始答案的评论后,我假设您的问题是“如何在列表中找到搜索字符串的索引(位置)?”

一种可能性是从列表的开头搜索字符串并计算您必须跳过的所有条目:
(defn index-of [item coll]
(count (take-while (partial not= item) coll)))

示例: (index-of "b" (list "a" "b" "c"))返回 1 .

如果你必须做很多查找,构造一个 hash-map 可能更有效。所有字符串及其索引:
(def my-list (list "a" "b" "c"))
(def index-map (zipmap my-list (range)))
(index-map "b") ;; returns 1

注意上面的定义,当列表中存在重复条目时 index-of将返回第一个索引,而 index-map将返回最后。

关于Clojure:列表或其他集合中值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8087115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com