我有一个列表A,[('a', 3), ('b', 0), ('c',0)]
,并希望将('b',0)
替换为('b', 13)
。
并返回一个新列表B [('a', 3), ('b', 13), ('c',0)]
。我如何在haskell中执行此操作?
由于
答案 0 :(得分:1)
如果您只想替换所有('b', 0)
,则可以使用map
:
b = map (\p -> if p == ('b', 0) then ('b', 13) else p) a
如果你想在第一个元素为'b'时替换第二个值,那么你可以这样做:
map (\p@(f, _) -> if f == 'b' then ('b', 13) else p) l
答案 1 :(得分:0)
你也可以这样做;
print('Tail: ' + str(float(tail) / length) + ' Head ' + str(float(head)/length))