替换元组列表中的第二个元组值

时间:2014-02-15 14:49:02

标签: list haskell replace tuples

我有一个列表A,[('a', 3), ('b', 0), ('c',0)],并希望将('b',0)替换为('b', 13)。 并返回一个新列表B [('a', 3), ('b', 13), ('c',0)]。我如何在haskell中执行此操作?

由于

2 个答案:

答案 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))