我正在尝试使用rstrip()函数,但它没有按预期工作。 例如,如果我运行它:
lines = ['tra\tla\tla\t\t\t\n', 'tri\tli\tli\t\t\t\n', 'tro\tlo\tlo\t\t\t\n']
for line in lines:
line.rstrip('\t')
print lines
返回
['tra\tla\tla\t\t\t\n', 'tri\tli\tli\t\t\t\n', 'tro\tlo\tlo\t\t\t\n']
而我希望它返回:
['tra\tla\tla\n', 'tri\tli\tli\n', 'tro\tlo\tlo\n']
这里有什么问题?
答案 0 :(得分:4)
该函数返回 new ,剥离字符串,但您丢弃该返回值。
使用列表推导来代替整个lines
列表;你也需要在最后忽略换行符; .rstrip()
方法不会忽略适合您的方法。
lines = [line[:-1].rstrip('\t') + '\n' for line in lines]
演示:
>>> lines = ['tra\tla\tla\t\t\t\n', 'tri\tli\tli\t\t\t\n', 'tro\tlo\tlo\t\t\t\n']
>>> [line[:-1].rstrip('\t') + '\n' for line in lines]
['tra\tla\tla\n', 'tri\tli\tli\n', 'tro\tlo\tlo\n']