0

我正在尝试 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']

这里有什么问题?

4

1 回答 1

4

该函数返回的、剥离的字符串,但您丢弃了该返回值。

使用列表推导代替整个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']
于 2013-08-02T14:12:45.317 回答