从列表中的元组替换字符串
我现在有以下这个列表:
data = [('b','..','o','b'),('t','s','..','t')]
我想找个办法把所有的'..'这个字符串替换成另一个字符串。在我的例子中,就是把它替换成' '。
我试过用内置的函数,按照下面的方法去做,但没有成功。
newData = list(map(lambda i: str.replace(i, ".."," "), data))
有人能给我指个方向吗?我想要的结果是这样的:
newData = [('b',' ','o','b'),('t','s',' ','t')]
2 个回答
3
Map这个东西是对列表里的每一个元素进行操作的。所以在你这个例子里,你的lambda表达式是作用在一个元组上,而不是你想要的那个元组里的每个元素。
如果把你的代码放在一个列表推导式里就可以解决这个问题:
newData = [tuple(map(lambda i: str.replace(i, ".."," "), tup)) for tup in data]