如何从列表中的字典的字符串值中删除字符?

时间:2015-02-13 16:53:07

标签: python dictionary

 litofdict = [{'name': 'Mike', 'surname':'Mikeson', 'age':'15\n'},{'name': 'John', 'surname':'Johnson', 'age':'15\n'},{'name': 'Tomy', 'surname':'Tomson', 'age':'19'}]

如果只有它们存在时才会删除那些'\ n'(我不知道如何检查)并返回一个仅包含“从字典'\ n'清除的值的列表?谢谢:)< / p>

with open("name.txt") as file:
    for l in file:
        listofdict.append(dict(zip(['name','surname','age']), l.split('|'))))
return listofdict

1 个答案:

答案 0 :(得分:2)

您可以遍历dict.items()strip值以删除回车符,然后使用列表推导为每个dict执行此操作

>>> [{key: val.strip() for key, val in i.items()} for i in listofdict]
[{'surname': 'Mikeson', 'age': '15', 'name': 'Mike'},
 {'surname': 'Johnson', 'age': '15', 'name': 'John'},
 {'surname': 'Tomson', 'age': '19', 'name': 'Tomy'}]

很难说没有看到你的文件,但是你可以通过调整你的文件读数而不需要任何后期处理来做到这一点

with open("name.txt") as file:
    listofdict = [dict(zip(['name','surname','age']), l.strip().split('|')) for l in file]
    return listofdict