用key作为变量名创建Python字典的简写方法

2024-05-23 23:12:55 发布

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

在javascript中,可以通过以下方式创建对象:

const a = 5;
const b = 10;

const c = {a, b};
// This will make c = {a: 5, b: 10}

Python中有这样的“速记”吗

到目前为止,我必须做:

a = 5
b = 10

c = {'a': a, 'b': b}

Tags: make方式javascriptthiswill创建对象const速记
1条回答
网友
1楼 · 发布于 2024-05-23 23:12:55

在这种情况下,答案是“否”,因为示例中的a和b是_umain__uu或其他模块中int对象的标签。a没有任何类似于属性“a”的东西

然而,更接近您可能想要的东西是可能的,尽管它肯定是一个肮脏的黑客,这完全取决于您正在做什么。例如,如果从main运行:

a = 5
b = 10
c = {i : eval(i) for i in dir() if "_" not in i}

这是因为“a”和“b”(即名称/标签)确实存在于更高的对象中,即_umain__;或您的模块中。您需要过滤器来排除其他隐藏属性。这个例子有很多原因,首先是使用dir(),但在更合适的情况下,例如当a和b是较低对象的属性时,这个原则会起作用。然而,在这种情况下,我无法想象你为什么要这样做,因为你基本上已经拥有了那本字典

因此,在python中这是非常困难的,因为根本不需要这样做

相关问题 更多 >