开发者

manipulating list items python

line = "english: while  french: pendant que  spanish: mie开发者_如何学编程ntras  german: whrend "

words = line.split('\t')

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

print words

the string in 'line' is tab delimited but also features a single white space character after each translated word, so while split returns the list I'm after, each word annoyingly has a whitespace character at the end of the string.

in the loop I'm trying to go through the list and remove any trailing whitespaces in the strings but it doest seem to work, suggestions?


Just line.split() could give you stripped words list.

Updating each inside the loop does not make any changes to the words list

Should be done like this

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

Or

words=map(str.rstrip,words)

See the map docs for details on map.

Or one liner with list comprehension

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

Or with regex .findall

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


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


You can use a regular expression:

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

With this you define the possible sequence as the delimiter. It also allows more than one space because of the * operator (or no space at all).

EDIT: Fixed after Roger Pate pointed an error.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜