检查字符串是否等于值dict,并校正空格而不是' - '

时间:2017-05-04 13:55:34

标签: python loops dictionary

设置向上

我正在抓住住房广告并获得每个广告的分区。我还有一个包含区(键)和子区(值)的字典。

字典的一部分看起来像,

d = {
      'Antony':['Antony','Châtenay-Malabry','Sceaux','Bourg-la-Reine','Bagneux',
               'Fontenay-aux-Roses','Le Plessis-Robinson','Clamart',
               'Châtillon','Montrouge','Malakoff','Vanves']
         ⋮
    }

<小时/> 的问题

我使用子区域和上面的字典为每个广告指定了一个区域名称:

for distr, subdr in d.items():
     if subdistrict in subdr:
          district = distr
          break
     else:
          district = 'unknown'

但是,对于某些广告,我在名称中获得了一个带有空格而不是'-'的子区域,例如'Fontenay aux Roses'代替'Fontenay-aux-Roses'。此外,我不能排除所有'-'都被替换 - 即可以检索'Fontenay aux-Roses'

如何告诉Python,例如'Fontenay aux-Roses''Fontenay aux Roses'或任何其他可能的组合都是'Fontenay-aux-Roses'

我的实际字典很大,并且包含多个地区名称,并且存在此问题。

我可以想到重复的解决方案,但想知道是否有更优雅的东西。

1 个答案:

答案 0 :(得分:0)

标准str.replace(old, new[, count])将与dict理解一起使用:

d = {
      'Antony':['Antony','Châtenay-Malabry','Sceaux','Bourg-la-Reine','Bagneux',
               'Fontenay aux Roses','Le Plessis-Robinson','Clamart',
               'Châtillon','Montrouge','Malakoff','Vanves']
    }

d = {k: [item.replace(' ', '-') for item in v] for k, v in d.items()}