我有一个列表,其人的年龄如(12,23,34,33,34,45,56 ......)近200个数字。我想分组(10-20)(21-30)(31-40)......(91-100)年龄组。
我如何在clojure中完成。
谢谢
答案 0 :(得分:4)
(defn group-by-tens [numbers]
(->> numbers (group-by #(quot % 10))
(sort-by first)
(map second)))
示例:
(group-by-tens [15 28 35 6 9 37 33 47 11 38 4 27 49 47 38 20 36 49 27 30])
=> ([6 9 4] [15 11] [28 27 20 27] [35 37 33 38 38 36 30] [47 49 47 49])
答案 1 :(得分:2)
另外,如果您的年龄值已排序(如问题中的示例),您可以对它们进行分区(或以其他方式排序和分区):
user> (partition-by #(quot % 10)
[1 2 3 4 10 12 16 23 27 29 33 34 45 59 71 72])
;;=> ((1 2 3 4) (10 12 16) (23 27 29) (33 34) (45) (59) (71 72))