检查字符串是否等于value dict,并更正空格而不是“”

2024-09-22 20:32:29 发布

您现在位置:Python中文网/ 问答频道 /正文

设置

我刮住房广告,并获得一个小区每广告。我也有一个字典,包括地区(键)和小区(值)

字典的一部分看起来像

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'

我的实际字典很大,包含多个地区名称与这个问题

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


Tags: in名称字典小区ch地区广告aux
1条回答
网友
1楼 · 发布于 2024-09-22 20:32:29

标准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()}

相关问题 更多 >