如何进行字典理解[重复]

问题描述 投票:0回答:1

所以我陷入了听写理解的困境。我正在制作基本的应用程序,我想保持我的字典顺序不变,这样它就不会影响我的界面,我还希望用户更改字典内的数据。

这是一个示例字典,只是为了理解理解背后的逻辑:

dict = {'1':'2', 'one':'two', "three":'four', '3':'4'}

如果我想更改我使用的键名:

dict2 = {'new_value' if k == '1' else k:v for k,v in dict.items() }

但是如果我想改变怎么办也值。我可以将其压缩为 1 个字典理解吗?或者只是使用另一种理解,我更改值,然后返回完全更新的字典。我知道当涉及到更改键:值对时,我也可以删除它并添加新的,但我想保持我的字典的顺序。

python dictionary dictionary-comprehension
1个回答
1
投票

您可以将

dict
构造函数与元组上的生成器一起使用:

dct = {'1':'2','one':'two',"three":'four','3':'4'}

dct2 = dict(('new_key', 'new_value') if k == '1' else (k, v) for k,v in dct.items())

这样,您只需评估一次条件。如果您对键和值有单独的条件,则可以对键和值使用条件表达式:

dct2 = {("nk" if keycond(k,v) else k):("nv" if valcond(k,v) else v) for k, v in dct.items()}
© www.soinside.com 2019 - 2024. All rights reserved.