gpt4 book ai didi

列表 - 组合对

转载 作者:行者123 更新时间:2023-12-04 13:28:40 26 4
gpt4 key购买 nike

我想制作一个带有列表的函数,例如

[('A',3), ('B',2), ('C',2), ('A',5), ('C',3), ('C',2)]

然后在字母相同时将数字相加。所以上面的输入会产生
[('A',8), ('B',2), ('C',7)]. 

有人可以给我一个如何解决这个问题的想法,我想自己尝试做尽可能多的事情!

最佳答案

您可以使用 Data.MapfromListWith构造一个具有总和值的映射。它的类型是这样的:

fromListWith :: Ord k => (a -> a -> a) -> [(k, a)] -> Map k a

它需要一个对列表(如您所描述的)作为第一个 arg,如果它看到重复,它使用一些函数(第一个 arg)将原始值与新值结合起来。从那里,您可以将此映射转换回对列表(也是 Data.Map 中的一个函数)。

您可以使用纯列表来执行此操作,但它可能不会那么有效,因为您将经常构建一个新列表(或其中的一部分)。

关于列表 - 组合对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8775064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com