【发布时间】:2018-11-04 11:57:57
【问题描述】:
我正在尝试从以下格式的文件中读取内容:
ID|姓名|国家/地区名称|电话号码 例如:
1|Austin|Germany|34-554567
2|Mary Jane|Australia|45-78647
我正在使用以下代码从中获取数据:
(
map-indexed
#(vector %1 %2)
(
map #(vec(.split #"\|" %1))
(
line-seq (clojure.java.io/reader "test.txt")
)
)
)
使用此代码,我得到以下输出:
([0 ["1" "Austin" "Germany" "34-554567"]] [1 ["2" "Mary Jane" "Australia" "45-78647"]] [2 ["3" "King Kong" "New-Zealand" "35-467533"]])
我希望输出是这样的:
ID:["name" "country-name" "phone-number"]
ID:["name" "country-name" "phone-number"]
例如:
1:["Austin" "Germany" "34-554567"]
2:["Mary Jane" "Australia" "45-78647"]
其中ID要加1(从1、2、3等开始),每个结果都会列出身份或ID,后面是与ID结合的数据,并应按ID排序。
我要对我的代码进行哪些更改才能实现这一点?
【问题讨论】:
-
你的意思是建立一个以ID为键的地图吗?试试
(into {} your-output ) -
看起来你问的和你得到的非常接近。
-
是的,我正在尝试将文本文件中的 id 号分配给我得到的输出。所以最后我会很容易地对它们进行排序
-
@manandearth 实际上我现在得到的不适合我的实际输出。此外,我发现将所有内容分配为向量并使用索引获取每个值并不困难
标签: clojure functional-programming