Parsing Clojure映射将列表返回到平面列表的函数

Parsing Clojure映射将列表返回到平面列表的函数,parsing,clojure,hashmap,Parsing,Clojure,Hashmap,当您解析字符串列表并希望将每个字符串一分为二,然后生成哈希映射时,就会发生这种情况 假设我们有一个字符串列表,每个字符串都有第一行ID和rest数据: ("#ID data More data", "#another ID Some more data still") 现在假设我们使用以下方法返回嵌套结构: (map #(clojure.string/split % #"\n" 2) data) 现在,如果我们想把它放到hashmap中,它首先必须是展平'd,然后是应用hashmap'd。

当您解析字符串列表并希望将每个字符串一分为二,然后生成哈希映射时,就会发生这种情况

假设我们有一个字符串列表,每个字符串都有第一行ID和rest数据:

("#ID
data
More data",
"#another ID
Some more data still")
现在假设我们使用以下方法返回嵌套结构:

(map #(clojure.string/split % #"\n" 2) data) 

现在,如果我们想把它放到hashmap中,它首先必须是
展平
'd,然后是
应用hashmap
'd。有没有办法跳过
展平
部分,让一些
平面图
返回非嵌套结构

您可以使用
进入

(into {} (map #(clojure.string/split % #"\n") data)) 

您可以在
中使用

(into {} (map #(clojure.string/split % #"\n") data)) 

您正在将每个字符串拆分为数量可变的子字符串。要将每个字符串拆分为不超过两个字符串,请使用带有3个参数的
#(clojure.string/split%#“\n”2)
我的错误。原来的代码实际上使用了3个参数。感谢您的提示。您正在将每个字符串拆分为数量可变的子字符串。要将每个字符串拆分为不超过两个字符串,请使用带有3个参数的
#(clojure.string/split%#“\n”2)
我的错误。原来的代码实际上使用了3个参数。谢谢你的提示。