gpt4 book ai didi

python - 如何将字典映射转换为 'integer aliasing'

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:19 26 4
gpt4 key购买 nike

我将如何完成以下任务?

>>> 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

基本上,我希望能够将字典映射转换为以下内容:

NON_EPISODIC_MOVIE = 11
...other items...

if content_type == NON_EPISODIC_MOVIE:
# do something

这将如何通过 dict 完成?

最佳答案

动态设置变量是一个真正可怕的想法,我数不清,但是 Python 给了你足够的绳索来搬起石头砸自己的脚!在交互式解释器提示下,它可能没有其他任何地方那么可怕......

>>> x={'NON_EPISODIC_MOVIE': 11}
>>> vars().update(x)
>>> NON_EPISODIC_MOVIE
11

适用于 Python 2 和 Python 3 交互式解释器。

更好的方法是将每一组这样的名称与值保存在一个类中,该类充当其命名空间。参见 http://code.activestate.com/recipes/52308-the-simple-but-handy-collector-of-a-bunch-of-named/ -- oldie, but goldie, 如果我自己这么说:-)。就说,例如

>>> movies = Bunch(**x)

并且全局变量将完好无损,但 movies.NON_EPISODIC_MOVIE 将为 11,“命名空间污染”风险为零(动态设置全局变量的大问题)。 ..

关于python - 如何将字典映射转换为 'integer aliasing',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27832424/

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