操纵列表项python

时间:2010-03-11 10:39:11

标签: python string

line = "english: while  french: pendant que  spanish: mientras  german: whrend "

words = line.split('\t')

for each in words:
 each = each.rstrip()

print words

'line'中的字符串是制表符分隔的,但在每个翻译的单词后面还有一个空格字符,所以当split返回我之后的列表时,每个单词都会在字符串的末尾恼人地显示一个空白字符。

循环中的

我正在尝试遍历列表并删除字符串中的任何尾随空格,但它似乎工作,建议?

3 个答案:

答案 0 :(得分:2)

只需line.split()即可为您提供单词列表。

在循环内更新each不会对words列表

进行任何更改

应该这样做

for i in range(len(words)):
    words[i]=words[i].rstrip()

或者

words=map(str.rstrip,words)

See the map docs了解有关地图的详细信息。

或具有列表理解的一个班轮

words=[x.rstrip() for x in line.split("\t")]

或使用正则表达式.findall

words=re.findall("[^\t]+",line)

答案 1 :(得分:1)

words = line.split('\t')
words = [ i.rstrip() for i in words ]

答案 2 :(得分:0)

您可以使用正则表达式:

import re
words = re.split(r' *\t| +$', line)[:-1]

通过这个,您可以将可能的序列定义为分隔符。由于*运算符(或根本没有空格),它还允许多个空格。

编辑:罗杰佩特指出错误后修复。