首页 > 解决方案 > 如何将整数存储在列表中

问题描述

我试图分离一个整数数组来计算有多少重复的数字。

对于此输入[10, 20, 20, 10, 10, 30, 50, 10, 20],我收到以下输出:

#{10=>"\n\n\n\n",20=>[20,20],30=>[30],50=>"2"}

问题

我想知道如何生成以下输出

#{10=>[10,10,10,10],20=>[20,20],30=>[30],50=>[50]}

我用来生成地图输出的函数是:


%% Next: number
%% Acc: map
separate_socks(Next, Acc) ->
    KeyExists = maps:is_key(Next, Acc),

    case KeyExists of
        true ->
            CurrentKeyList = maps:get(Next, Acc),
            maps:update(Next, [Next | CurrentKeyList], Acc);
        false -> maps:put(Next, [Next], Acc)
    end.

标签: erlang

解决方案


您的输出实际上是正确的。ascii 值为10。erlang\n中没有原生string数据类型。字符串不是值列表。erlang:is_list("abc")将返回 true。

尝试 [1010, 1020, 1020, 1010, 1010, 1030, 1050, 1010, 1020] 作为输入。它应该显示所有数字。


推荐阅读