去除字符串前的空格

-1 投票
2 回答
1671 浏览
提问于 2025-04-17 23:50

我在处理字符串时遇到了问题,想要去掉字符前面的空格。我正在解析下面这个示例字符串:

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']

撰写回答