2013-01-16 301 views
1

我想從Python字典中刪除所有\ r \ n。最簡單的方法是什麼?我的字典是這樣看的那一刻 -刪除字典中的特殊字符

{'': '34.8\r\n', 
    'Mozzarella di Giovanni\r\n': '34.8\r\n', 
    'Queso Cabrales\r\n': '14\r\n', 
    'Singaporean Hokkien Fried Mee\r\n': '9.8\r\n' 
} 

編輯:這裏就是我想 -

for key, values in productDictionary.items() : 
    key.strip() 
    values.strip() 
    key.strip('"\"r') 
    key.strip('\\n') 
    values.strip('\\r\\n') 
print productDictionary 

和輸出仍然是相同的。

+2

在你的代碼中,你實際上遍歷一個列表('.items()'),修改從這個列表中檢索的變量不會影響'dict'。 –

+0

Strip返回已刪除這些字符的字符串,但不修改該字符串。 –

回答

6

您可以使用str.strip()

不帶參數使用時

str.strip(),去掉所有類型的前導和尾部空格。

>>> productDictionary={'': '34.8\r\n', 
    'Mozzarella di Giovanni\r\n': '34.8\r\n', 
    'Queso Cabrales\r\n': '14\r\n', 
    'Singaporean Hokkien Fried Mee\r\n': '9.8\r\n' 
} 

>>> productDictionary=dict(map(str.strip,x) for x in productDictionary.items()) 
>>> print productDictionary 
>>> 
{'': '34.8', 
'Mozzarella di Giovanni': '34.8', 
'Queso Cabrales': '14', 
'Singaporean Hokkien Fried Mee': '9.8'} 

help()str.strip()

S.strip([字符]) - >字符串或Unicode

返回琴絃S與前緣和後除去空白 的副本。如果給出字符而不是無,請刪除字符 中的字符。如果字符是unicode,S將被轉換 之前爲Unicode剝離

+0

同樣的問題。我編輯了這個問題。 –

+0

@AshishAgarwal你在做什麼是不正確的,我的代碼工作正常。 –

6

使用字典理解:

clean_dict = {key.strip(): item.strip() for key, item in my_dict.items()} 

strip()函數刪除換行符,空格和從前面和一個串的背面突出部。

+0

同樣的問題。我編輯了這個問題 –

+0

這個詞典的理解是不正確的,'語法錯誤'。 –

+0

@AshwiniChaudhary - 呃,我修好了。它需要密鑰和項目之間的冒號,而不是逗號。 – Michael0x2a