我想创建一个映射,其中键是字符串中的字符,每个键的值都是字符串中给定字符位置的列表。如何在Clojure中创建字符串索引的映射?
0
A
回答
4
我确信有几种解决方案。我的第一个想法是使用map-indexed
获取[index character]
的列表,然后reduce
集合到地图中。
(defn char-index-map [sz]
(reduce
(fn [accum [i ch]]
(update accum ch conj i))
{}
(map-indexed vector sz)))
(char-index-map "aabcab")
;;=> {\a (4 1 0), \b (5 2), \c (3)}
6
短一点的变体:该指数在这里
(defn process [^String s]
(group-by #(.charAt s %) (range (count s))))
user> (process "asdasdasd")
;;=> {\a [0 3 6], \s [1 4 7], \d [2 5 8]}
通知进行排序
+0
另一种解决方案具有反向排序索引,这对我想解决的问题可能更好。 –
相关问题
- 1. Logstash在创建时映射索引
- 2. 如何在Clojure中通过索引修改字符串?
- 3. 如何创建字符串的静态映射 - >阵列
- 4. ElasticSearch字段在索引时默认映射为字符串
- 5. 如何在sql中为字符串列创建索引?
- 6. 为索引创建映射时出错
- 7. 在PowerShell中,如何将列表映射到搜索字符串
- 8. 如何在SML中的字符串中映射每个字符
- 9. 如何通过索引在c#中动态地映射字符串?
- 10. 如何在Clojure中映射PersistentHashMaps的PersistentVector?
- 11. 如何在Clojure中创建一个字符串列表?
- 12. 如何在电梯的映射器ORM中创建字符串主键?
- 13. 如何在FPDF中为Khmer Unicode创建字符映射?
- 14. 映射字符串
- 15. 所有日志的字段更改映射创建的索引
- 16. 如何为动态搜索字符串创建索引
- 17. 创建一个索引号字符串
- 18. R:创建索引字符串向量
- 19. Noob,创建字符串方法的索引和子字符串
- 20. 哈希+映射或索引+映射来浓缩使用字符串
- 21. 如何通过在scala中映射来创建字符串序列?
- 22. 如何映射Dart中字符串中的每个字符?
- 23. 如何映射Io中字符串中的字符?
- 24. 如何从Java中的字符串(更复杂)创建一个键/值映射
- 25. 如何在Lucene中索引字符串?
- 26. 映射JSON字符串在Java中映射或HashMap的领域
- 27. Elasticsearch索引模板丢失原始字符串映射
- 28. ElasticSearch - 显式映射中的字符串字段的索引和存储属性
- 29. RestKit:如何映射任意字符串
- 30. 如何通过ObservableCollections映射字符串
你尝试过这么远吗?分享你所拥有的东西,很清楚你遇到了什么问题。 –
@Piotrek Bzdyl - 我被困在Clojure的不变性中。 –
通常,当您想从现有结构创建新结构'reduce'或'loop/recur'时,这是一个很好的起点。棘手的部分是弄清楚,如果已经有一个更高阶的函数或组合已经做了你想要做的。 – Scott