haskell-zip-unzip函数实现

本文介绍了如何使用Python实现myUnzip函数,用于将元组的key-value对拆分成两个列表,并展示了myZip函数的用法,用于将两个列表合并为元组对。这些操作在数据处理和函数式编程中非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-- unzip 将map的key和value分别取出放到2个list中
myUnzip :: [(a, b)] -> ([a], [b])
myUnzip [] = ([], [])
myUnzip ((x, y) : zs) = (x : xs, y : ys)
    where (xs, ys) = myUnzip zs


-- myUnzip1 :: [(a, b)] -> ([a], [b])
-- myUnzip1 [] = []
-- myUnzip1 (x, y) : ys = (x , xs) : (y, ys)
--     where 

-- >>> myUnzip [(1,4), (2,5), (3, 6)]
-- ([1,2,3],[4,5,6])
--

myZip :: [a] -> [a] -> [(a, a)]
myZip [] [] = []
myZip _ [] = []
myZip [] _ = []
myZip (x : xs) (y : ys) = (x, y) : myZip xs ys

-- >>>myZip [1,2,3] [4,5,6]
-- [(1,4),(2,5),(3,6)]
--


-- >>>myZip [1,2,3] []
-- []
--

myZipWith f [] [] = []
myZipWith f (x : xs) (y : ys) = f x y : myZipWith f xs ys


-- >>> myZipWith (+) [1,2,3] [4,5,6]
-- [5,7,9]
--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值