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返回我之后的列表时,每个单词都会在字符串的末尾恼人地显示一个空白字符。
循环中的我正在尝试遍历列表并删除字符串中的任何尾随空格,但它似乎工作,建议?
答案 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]
通过这个,您可以将可能的序列定义为分隔符。由于*运算符(或根本没有空格),它还允许多个空格。
编辑:罗杰佩特指出错误后修复。