天天看點

erlang中修改list裡面tuple—list的值的類型

有個這樣的例子:list裡面是多個個tuple—list 或者maps,

ListA = [[{},{}}],[{},{}]], 舉例:

A = [[{<<"CARDISSUERID">>,<<"2">>},
{<<"CARDSTOCKTYPE">>,1},
{<<"CARDTYPE">>,0},
{<<"DERIVATIVESPRODUCTTYPE">>,1},
{<<"PARAM_VER">>,<<"195">>},
{<<"PREASSIGNMENTATTRIBUTE">>,1},
{<<"PRODUCTTYPE">>,9800},
{<<"SALEVALUE">>,<<"0">>}],
[{<<"CARDISSUERID">>,<<"2">>},
{<<"CARDSTOCKTYPE">>,1},
{<<"CARDTYPE">>,0},
{<<"DERIVATIVESPRODUCTTYPE">>,1},
{<<"PARAM_VER">>,<<"195">>},
{<<"PREASSIGNMENTATTRIBUTE">>,1},
{<<"PRODUCTTYPE">>,9800},
{<<"SALEVALUE">>,<<"0">>}]].      

  想把  key是 <<"CARDISSUERID">> 的 值的類型,改成integer ,目前是 binary ,{<<"CARDISSUERID">>,<<"2">>}

直接上代碼,修改對應key的值,直接幹:

[lists:map(fun(X) -> if element(1,X) == <<"CARDISSUERID">> -> 
                                     {element(1,X), binary_to_integer(element(2,X))};
                            true -> X
                     end 
                end,Z)|| Z<-A].      

 執行結果如下: 

erlang中修改list裡面tuple—list的值的類型