替换字典中列表元素的一部分

时间:2017-05-02 19:19:34

标签: python loops dictionary

设置向上

我有一个字典,其中每个键包含至少一个字符串元素的列表。

这是字典的一部分,

d = {
  'Bergen-Enkheim': ['Bergen-Enkheim'],
  'Bornheim/Ostend': ['Ostend,\xa0Bornheim'],
  'Harheim': ['Harheim'],
  'Innenstadt I': ['Altstadt,\xa0Bahnhofsviertel,\xa0Gallus,'
                   '\xa0Gutleutviertel,\xa0Innenstadt']
}

<小时/> 的问题

大多数元素以\xa0开头,我想用空格替换。

我尝试了以下循环,

for key in d:
   for x in d[key]:
       x = x.replace('\xa0', ' ')     

d保持不变。如何用空格替换不需要的字符?

3 个答案:

答案 0 :(得分:1)

您可以对值使用经典迭代:

for values in d.values():
    values[:] = [x.replace('\xa0', ' ') for x in values]

每个列表都已就地修改。

答案 1 :(得分:1)

字符串是不可变的,因此x.replace(...)会生成一个新字符串,而不是更改字典列表中的现有字符串。然后,语句x = ...x更新为新字符串的名称。简而言之,您必须明确更改字典列表中的条目。

for key in d2:
   for i, x in enumerate(d2[key]):
       d2[key][i] = x.replace('\xa0', ' ')

答案 2 :(得分:1)

您可以迭代键,然后更新值

for key in d:
    d[key] = [s.replace('\xa0', '') for s in d[key]]