2014-03-25 203 views
-1

刪除字符前的空格有困難。我試圖解析下面的樣本串對象:刪除字符串前的空格

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

有在「詹姆斯·多伊」和「耶穌納瓦斯」我正努力避免因鍵是敏感的空格,即d [「詹姆斯·多伊」的前面一些空格]與['James Doe']不同,因爲密鑰中有空格。我將如何避免它?另外,我想使列表項不區分大小寫,如:

d=(items.lowercase() for items in d) 
+0

您可以使用'strip'。 [修剪字符串](http://stackoverflow.com/a/6039813/3336968) – fredtantini

+0

你有沒有試過把它解析爲['json'](http://docs.python.org/2/library/json。 html)字符串? –

+0

下面的答案是正確的,但我不禁想知道你從哪裏得到這個字符串。它似乎想成爲json,但並不完全。你是否能夠改變字符串的生成方式,以便於解析? –

回答

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

感謝sshahank的建議。我如何讓項目中的列表忽略大小寫? – user3399326

+0

@ user3399326,你可以'string.lower()' – sshashank124

+0

我不認爲有可能改變字典的關鍵。是嗎?例如我試圖刪除James Doe鍵前面的空格,在dict = {'James Doe':{...}} – user3399326

2

strip()lstrip()rstrip()Docs here

例如:

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

謝謝Bill的回覆。順便說一句。我將如何試圖忽視案件。我會怎麼做? – user3399326