去除字符串前的空格
我在处理字符串时遇到了问题,想要去掉字符前面的空格。我正在解析下面这个示例字符串:
Mary Whitten: {laptop: 100, tv : 5, xbox: 50, }, James Doe: {laptop: 30, tv: 3, xbox: 5,}, Jesus Navas: {laptop: 25, tv: 3, xbox: 5},Matt Mart:{laptop:10, xbox: 10}
我在解析上面的字符串时也用了.split('},')。我得到了这些键:
d=['Mary Whitten', ' James Doe', ' Jesus Navas', 'Matt Mart']
在' James Doe'和' Jesus Navas'前面有一些空格,我想去掉这些空格,因为键对空格很敏感,也就是说d['James Doe']和[' James Doe']是不一样的,因为键前面的空格导致了这个区别。我该怎么避免这个问题呢?另外,我还想让列表项不区分大小写,比如:
d=(items.lowercase() for items in d)
2 个回答
2
看看 strip()
、lstrip()
和 rstrip()
这几个方法。这里有相关文档。
举个例子:
>>> 'Mary Whitten '.rstrip()
'Mary Whitten'
>>> ' James Doe'.lstrip()
'James Doe'
>>> ' Jesus Navas '.strip()
'Jesus Navas'
如果你只想去掉某些特定的字符(比如只去掉空格),你可以给 .*strip
方法传入一个字符或者字符的集合,比如 .strip(" ")
或者 '.rstrip("\?\.\!\n")
。
根据你的需求,看起来可以这样做:
d = (items.lower().strip() for items in d)
0
你可以这样简单地做到:
string.strip()
如果你在 " Hello "
这个字符串上运行这个代码,结果会是 "Hello"
对于你的代码,你可以这样做:
d = [item.strip() for item in d]
>>> d = (item.lower().strip() for item in d)
>>> print d
['mary whitten', 'james doe', 'jesus navas', 'matt mart']