我有这个列表(Integer,Integer),我想转换成这个列表(Integer,Integer)。
根据我所读到的,我应该使用像map这样的高阶函数。
alterList :: ([Integer],[Integer]) -> [(Integer,Integer)]
alterList a = map(\a -> .....?)有指引吗?这两个列表都是相同大小的。
就像我有两个列表(1,2,3,4,5,6,7,9),我想转换成(1,5),(2,6),(3,7),(4,8)
发布于 2018-04-02 21:16:53
所以在你更正了你的帖子后,我想你想
alterList :: ([Integer],[Integer]) -> [(Integer,Integer)]
alterList (l1, l2) = zip l1 l2示例:
>>> alterList ([1,2,3,4],[5,6,7,9])
[(1,5),(2,6),(3,7),(4,9)]这相当于
alterList' :: ([Integer],[Integer]) -> [(Integer,Integer)]
alterList' = uncurry zip注意,即使这两个列表的大小不同,这个函数也能工作:在这种情况下,它的作用就好像最长的列表被截断到最短的列表的长度一样。
https://stackoverflow.com/questions/49618128
复制相似问题