字典项(或字符串列表)中不需要的'\ n'字符

时间:2014-07-04 12:45:34

标签: python python-3.x

在每个词典关键项的每个最后一个值的末尾摆脱不需要的\ n的任何建议?

例如:

d= {'1' : ['12', '15:23,24:26\n'], '2' : ['13', '15:6\n'],...}

通缉结果:

d= {'1' : ['12', '15:23,24:26'], '2' : ['13', '15:6'],...}

或者,在字符串列表中摆脱它们的任何建议?

例如:

L= ['1','12','15:23,24:26\n', '2', '13', '15:16\n',...]

通缉结果:

L= ['1','12','15:23,24:26', '2', '13', '15:16',...]

修改

导入代码:

with open('file.txt', 'r+') as file:
    rows = (line.split('\t') for line in file)
    d_file = {row[0]:row[1:] for row in rows}

3 个答案:

答案 0 :(得分:3)

为列表中的每个项目调用str.strip()。您可以将字典和列表理解的组合用于字典:

In [9]: d = {'1' : ['12', '15:23,24:26\n'], '2' : ['13', '15:6\n']}

In [10]: {k: [x.strip() for x in v] for k, v in d.items()}
Out[10]: {'1': ['12', '15:23,24:26'], '2': ['13', '15:6']}

只是对列表一的简单列表理解:

In [6]: L= ['1','12','15:23,24:26\n', '2', '13', '15:16\n']

In [7]: [x.strip() for x in L] 
Out[7]: ['1', '12', '15:23,24:26', '2', '13', '15:16']

str.strip() -function将从字符串中删除前导和尾随字符。如果没有参数,它将删除空格,其中包括换行符。列表推导只是为列表中的每个元素调用str.strip() - 函数。

答案 1 :(得分:2)

首次导入数据时清理数据,而不是在事后清理数据。

这是您的数据读取代码:

with open('file.txt', 'r+') as file: 
    rows = ( line.split('\t') for line in file ) 
    d_file = { row[0]:row[1:] for row in rows }

添加对rstrip()的调用以删除该行末尾的空格:

with open('file.txt', 'r+') as file: 
    rows = ( line.rstrip().split('\t') for line in file ) 
    d_file = { row[0]:row[1:] for row in rows }

答案 2 :(得分:0)

L = {key.strip(): item.strip() for key, item in d.items()}

strip()功能可从前面中删除换行符,空格标签返回字符串。

Python strip() function tutorial