Python 如何将字典映射转换为';整数别名';

Python 如何将字典映射转换为';整数别名';,python,Python,我将如何完成以下任务 >>> x={'NON_EPISODIC_MOVIE': 11} >>> for k,v in x.items(): ... k=v ... >>> NON_EPISODIC_MOVIE Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'NON_EPISODI

我将如何完成以下任务

>>> x={'NON_EPISODIC_MOVIE': 11}
>>> for k,v in x.items():
...     k=v
... 
>>> NON_EPISODIC_MOVIE
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'NON_EPISODIC_MOVIE' is not defined

如何通过dict来实现这一点?

动态设置变量在很多方面都是一个非常糟糕的想法,我无法计数,但是Python给了你足够的绳子,让你可以射中自己的脚!在交互式解释器提示下,它可能没有其他任何地方那么可怕

>>> x={'NON_EPISODIC_MOVIE': 11}
>>> vars().update(x)
>>> NON_EPISODIC_MOVIE
11
适用于Python 2和Python 3交互式解释器

更好的方法是将每一组这样的名称和值保存在一个类中,该类充当其名称空间。看——老兄,但是戈尔迪,如果我自己这么说的话:-)。就说,例如

>>> movies = Bunch(**x)

全局变量将是完整的,但是
电影。非情节电影
11
将是“名称空间污染”(动态设置全局变量的大问题)的零风险。

动态设置变量在很多方面都是一个非常糟糕的主意,但是巨蟒给了你足够的绳子,可以射中你自己的脚!在交互式解释器提示下,它可能没有其他任何地方那么可怕

>>> x={'NON_EPISODIC_MOVIE': 11}
>>> vars().update(x)
>>> NON_EPISODIC_MOVIE
11
适用于Python 2和Python 3交互式解释器

更好的方法是将每一组这样的名称和值保存在一个类中,该类充当其名称空间。看——老兄,但是戈尔迪,如果我自己这么说的话:-)。就说,例如

>>> movies = Bunch(**x)

全局变量将是完整的,但是
电影。非情节电影
11
将是“名称空间污染”(动态设置全局变量的大问题)的零风险。

动态变量几乎肯定是错误的方法。如果content\u type==x['NON\u eposodic\u MOVIE'],那么执行
有什么不对:
?什么是整数映射?看起来您正在尝试创建常量…@mattm我不确定正确的术语是什么,但设置整数的名称以便更容易识别(别名)?例如:
MATTM_USER_ID=3161282
可能与@David542重复。你是说动态变量吗?几乎可以肯定,动态变量是错误的方法。如果content\u type==x['NON\u eposodic\u MOVIE'],那么执行
有什么不对:
?什么是整数映射?看起来您正在尝试创建常量…@mattm我不确定正确的术语是什么,但设置整数的名称以便更容易识别(别名)?例如:
MATTM_USER_ID=3161282
可能与@David542重复。你是说一个吗?如果变量名是超特定的,并且永远不会被覆盖,为什么这会是一个坏主意?例如,我有一个通过应用程序使用的“内容类型”列表。因此,访问
内容\u类型\u短片
比其他任何操作都更具可读性。还是我错了?@David542-意外地覆盖名称只是问题之一。它们还污染了全局名称空间。另外,作为一个整体,很难与他们合作。我的意思是,有了字典,你可以得到它的长度,轻松地添加和删除项目,打印它,迭代它,等等。然而,动态名称只是名称。一种更优越的方法是将这样的常量的每个逻辑组保存在一个类中——例如。。。但是戈尔迪,如果我自己这么说的话:-)。这将避免几乎所有与将此类常量转换为全局变量相关的问题<代码>在Python解释器提示下导入此
——每一行都是智慧的结晶,但这是最后一行,也是最微妙的一行……:“名称空间是一个非常好的想法——让我们做更多的吧!”。在名称空间中保留名称串:你会生活得更快乐、更理智如果变量名是超特定的并且永远不会被覆盖,为什么这会是一个如此糟糕的主意?例如,我有一个通过应用程序使用的“内容类型”列表。因此,访问
内容\u类型\u短片
比其他任何操作都更具可读性。还是我错了?@David542-意外地覆盖名称只是问题之一。它们还污染了全局名称空间。另外,作为一个整体,很难与他们合作。我的意思是,有了字典,你可以得到它的长度,轻松地添加和删除项目,打印它,迭代它,等等。然而,动态名称只是名称。一种更优越的方法是将这样的常量的每个逻辑组保存在一个类中——例如。。。但是戈尔迪,如果我自己这么说的话:-)。这将避免几乎所有与将此类常量转换为全局变量相关的问题<代码>在Python解释器提示下导入此
——每一行都是智慧的结晶,但这是最后一行,也是最微妙的一行……:“名称空间是一个非常好的想法——让我们做更多的吧!”。在名称空间中保留名称串:你会生活得更快乐、更理智