使用.replace()函数时重复列表项

时间:2014-09-10 03:08:29

标签: python string list replace

lst = ['123,456', '"hello"', '345,678', '"bye"']
def main():
    new_lst = []
    for item in lst: 
        #print item
        new_lst.append(item.replace(',','***'))
        new_lst.append(item.replace('\"', ''))
    return new_lst

print main()

这对我来说非常令人费解。我不知道我在这里做错了什么。我知道这是一个非常愚蠢的错误,但它没有点击我。我不知道为什么我得到一个输出:

['123***456', '123,456', '"hello"', 'hello', '345***678', '345,678', '"bye"', 'bye']

我希望的是:

['123***456', 'hello', '345***678', 'bye']

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

您要添加两次相同的字符串,并使用两个不同的替换项。你应该像这样链接replace

new_lst.append(item.replace(',','***').replace('\"', ''))

更好的是,你可以在这里使用列表理解,比如

return [item.replace(',','***').replace('\"', '') for item in lst]