gpt4 book ai didi

Python 字典创建语法

转载 作者:IT老高 更新时间:2023-10-28 20:33:03 25 4
gpt4 key购买 nike

我想知道是否有任何方法可以填充字典,以便您将多个键映射到相同的值,这比说:

d = {1:'yes', 2:'yes', 3:'yes', 4:'no'}

我的想法是这样的:

d = {*(1,2,3):'yes', 4:'no'}

这显然是一个语法错误。

有没有一种相当简单的方法来做到这一点而没有太多的混淆? (我不是在玩代码高尔夫,但我也不需要一遍又一遍地写基本相同的东西。但是,任何与代码高尔夫相关的答案也将不胜感激,因为代码高尔夫很棒=])。

编辑:

我可能选择了一个不好的例子。这就是我想要做的:

d = {*('READY', 95): 'GPLR2_95', 'CHARGING': 'GPLR3_99', 'PROTECTION': 'GPLR3_100', 'CONNECTED': 'GPLR3_101', 'ERROR':'GPLR3_102'}

我希望它扩展为:

d = {'READY':'GPLR2_95', 95: 'GPLR2_95', ...}

编辑->编辑:

我知道这很愚蠢而且完全没有必要,但我的目标是在一行上做这个声明。这显然不应该仅仅因为它适合 1 行而限制任何响应和编写代码是愚蠢的。但是我正在编写一个模块级别的常量字典,如果它是一个单一的衬里会很好。

最佳答案

你可以扭转局面:

>>> d1 = {"yes": [1,2,3], "no": [4]}

然后“反转”该字典:

>>> d2 = {value:key for key in d1 for value in d1[key]}
>>> d2
{1: 'yes', 2: 'yes', 3: 'yes', 4: 'no'}

关于Python 字典创建语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6191672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com