list - 合并元组列表和整数列表

标签 list haskell merge tuples zip

我是 Haskell 新手,目前正在学习列表。

我有一个标记列表

[("Tom", 87, 78, 67), ("Dick", 56, 45, 72)]

我需要得到分数的总和及其平均值。这是我的方法。

创建一个函数来计算每个候选人的分数总和列表

sumOfMarks = (\(a, b, c, d) -> b + c + d)

并将该函数映射到原始列表

newList = map sumOfMarks [("Tom", 87, 78, 67), ("Dick",  56, 45, 72)]

创建一个函数来计算每个候选人的平均分数列表

avgList = map (`div`3) newList

合并所有原始列表、newListavgList

期望的输出是

finalList = [("Tom", 87, 78, 67, 232, 77.34), ("Dick", 56, 45, 72, 173, 57.67)]

另一个问题是——这是否是解决问题的最佳方法以及是否有更好的方法?

最佳答案

您可以创建一个将 4 元组映射到 5 元组的函数,因此该函数如下所示:

map (\(n, a, b, c) -> (n, a, b, c, …)) oldList

我把...作为练习。

请注意div :: Integral a => a -> a -> a是整数除法。如果需要使用 float ,可以使用 (/) :: Fractional a => a -> a -> a 。为了将整数数字转换为小数数字,您可以使用 fromIntegral :: (Integral a, Num b) => a -> b功能。

关于list - 合并元组列表和整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68858199/

相关文章:

python - 如何将相邻元素简化为单个元素

python - 检查两个变量是否在同一个列表中

python - 如何使用for循环,if-else合并两个文件?

haskell - 我的幺半群应该是左偏还是右偏?

haskell - 如何实现除 defaultLayout 以外的布局

git - 如何管理多个用户在 git 上的代码 merge ?

svn - svn-merge 是向后的吗?

R 组合列表项

python 在一行中将列表项转换为 unicode

haskell - 如何在 Haskell 中转置由三元组组成的三元组