python 定义字典键为变量_在python字典中使用变量作为键名

我今天来是因为我有同样的问题。我必须说,我对这些答案很失望!我同意你的观点,这种冗余应该有一个惯用的解决方案。在这种情况下,JavaScript似乎比Python更明智。所以我想增加两个建议。

首先,只要说abarnet是正确的,即如果它只是一个或两个变量,则应该显式。我要说的是,即使比这更重要,明确的结构通常会更好。但我确实认为有些情况下,捷径是允许的。例如,我有一个文件,它构建字典以通过Python请求发送数据。就这样。并在

每一个

最后,我编了一本字典,其中的键与我定义的变量相同。我认为这是一个可以接受使用快捷方式的文件的例子。

首先,你可以利用

eval

内置。通常避免使用此命令,但在这种情况下,它会有所帮助,因为它可以接收一个字符串,该字符串是变量的名称,并输出变量值:

def main():

#variables

foo = “hello world”

bar = 10

baz = [1, 2, 3]

# Build the dictionary:

args = (“foo”, “bar”, “baz”)

dictionary = dict()

for arg in args:

dictionary[arg] = eval(arg)

print(dictionary)

if __name__ == “__main__”:

main()

试试看。请注意,由于变量范围的原因,很难将此功能包装成某种类或函数。即使使用字典理解也会失败。但是如果你喜欢在这样的函数中添加3行平面,它会起作用。

其次,考虑在构建字典时是否可以将值赋给变量。所以不是:

foo = 4+5

dictionary = dict(foo=foo)

尝试:

dictionary = dict(

foo=4+5

)

如果需要在以后的计算中使用前面的值,请先初始化字典,然后将计算与dict赋值结合起来:

dictionary = dict()

dictionary[‘foo’] = 4 + 5

dictionary[‘bar’] = dictionary[‘foo’] + 9

对于上述情况,我认为还有一点可能会有所帮助,那就是新的PEP允许您在计算中分配别名。BDFL辞职的那个。所以,让我们希望它能尽快实现!

最后,只需对接受的答案做一个简短的评论,即python已经使用了来表示set,这并不意味着我们无法创建此功能(为什么不创建<>或d()或其他功能?)只有我的2美分。我认为这是一个必要的特性。

    原文作者:源不原
    原文地址: https://blog.csdn.net/weixin_28996657/article/details/114913864
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞