使用字典理解修改字典,而不创建新的di

2024-04-27 06:03:32 发布

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

我有以下字典:

d = {'lnsd-02': 'manager', 'lnsd-03': 'manager', 'lnsd-01': 'quorum', 'lnsd-04': 'manager', 'lnsd-05': 'manager'}

我正在用类似的列表理解来测试字典的理解。在

^{pr2}$

如何在不创建新字典的情况下对上述代码应用字典理解并更改某些键的值? 像下面这样的东西

d[i] = {i: 'quorum-manager' for i in d if i[-2:] in ('02', '05')}

最后,我需要原始字典的值改为

d = {'lnsd-02': 'quorum-manager', 'lnsd-03': 'manager', 'lnsd-01': 'quorum', 'lnsd-04': 'manager', 'lnsd-05': 'quorum-manager'}

Tags: 代码in列表forif字典manager情况
1条回答
网友
1楼 · 发布于 2024-04-27 06:03:32

使用^{}方法:

d.update({i: 'quorum-manager' for i in d if i[-2:] in ('02', '05')})

理解将创建一个新词典,但此词典仅用于更新原始词典的内容d。在


鉴于您的原始数据:

^{pr2}$

以及应用

>>> d.update({i: 'quorum-manager' for i in d if i[-2:] in ('02', '05')})

结果是

{'lnsd-04': 'manager', 'lnsd-03': 'manager', 'lnsd-01': 'quorum', 
'lnsd-05': 'quorum-manager', 'lnsd-02': 'quorum-manager'}

符合你想要的结果

相关问题 更多 >