有一个由等长列表组成的列表,例如:
(def d [["A" "B"] ["A" "C"] ["H" "M"]])
如何将其转换为一个集合列表,每个集合代表上面的索引:
[#{"A" "H"} #{"B" "C" "M"}]
有一个由等长列表组成的列表,例如:
(def d [["A" "B"] ["A" "C"] ["H" "M"]])
如何将其转换为一个集合列表,每个集合代表上面的索引:
[#{"A" "H"} #{"B" "C" "M"}]
(map set (apply map vector d))
"(apply map vector)
"被其他类似于Python的语言称为"zip"。它对d
的每个元素的第一个项目、第二个项目等调用vector
,然后我们在这些集合中每个都调用set
。(apply map hash-set d)
(apply map (fn [& s] (set s)) d)
我建议如下:
(reduce
(fn [sets vals]
(map conj sets vals))
(map hash-set (first d))
(rest d))