所以我陷入了听写理解的困境。我正在制作基本的应用程序,我想保持我的字典顺序不变,这样它就不会影响我的界面,我还希望用户更改字典内的数据。
这是一个示例字典,只是为了理解理解背后的逻辑:
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 个字典理解吗?或者只是使用另一种理解,我更改值,然后返回完全更新的字典。我知道当涉及到更改键:值对时,我也可以删除它并添加新的,但我想保持我的字典的顺序。
您可以将
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()}