Python:定义多个相同类型的变量?

可能是重复的,但我至少无法通过搜索这些术语来找到答案。Python:定义多个相同类型的变量?

在Python中有更快的方法吗?

level1 = {} 

level2 = {}

level3 = {}

我已经试过

level1 = level2 = level3 = {} 

,但似乎创建对象,这是不是我想要的副本。并且

level1, level2, level3 = {} 

将引发错误。

回答:

你的变量命名是一个可能的迹象,表明你的设计还有待改进。这可能是最好使用一个列表,而不是三个独立的变量:

levels = [{}, {}, {}] 

回答:

你可以做

level1, level2, level3 = {}, {}, {} 

回答:

level1, level2, level3, = {}, {}, {} 

回答:

level1 = level2 = level3 = {} 

不创建副本。它让参考级别{1-3}到相同的对象。您可以使用列表理解来代替:

level1, level2, level3 = [{} for dummy in range(3)] 

或更具可读性:

level1, level2, level3 = {}, {}, {} 

回答:

Python是解释允许的事情在运行时进行定义。

def prefixed_range(prefix, start, stop=None, step=1): 

" Like xrange() but results are prefixed numeric strings. """

prefix = str(prefix)

if stop is None:

start, stop = 0, start

for i in xrange(start, stop, step):

yield prefix + str(i)

def define_vars(names, value=None, namespace=None):

namespace = globals() if not namespace else namespace

factory = (lambda: value) if not callable(value) else value

for name in names:

namespace[name] = factory()

define_vars(prefixed_range('level', 1, 4), dict)

print 'level1: {}, level2: {}, level3: {}'.format(level1, level2, level3)

# level1: {}, level2: {}, level3: {}

回答:

我个人从不改变代码来挤压更多东西在一行上。我有三种不同的作业方式,一种是每行一种。

但是,如果通过做出这样的改变而有文件记录的性能改进,那就是另一回事了。我只是不知道这些变化带来的性能改进。只有混淆。

回答:

人们已经回答了你的问题的意图,但是......

有一个更快的方式在Python做到这一点?

你是什么意思,更快?

我认为你真正的问题应该是“这是什么pythonic方式?“

1级,级别2,级别3 = {}

从Python documentation:

元组由逗号运算(方括号内不)构造,具有或不具有括起括号,但是空元组必须包含括号,例如a,b,c或()。单个元组元组必须包含尾随逗号,如(d,)

a,b,c隐式地(a,b,c)。这就是为什么你需要像其他海报(nils,sdolan,gunner)所建议的那样在右侧有一个三元组。

明确地示出它们被暗示此:

(level1, level2, level3) = ({}, {}, {},) 

回答:

尝试此: 1级,级别2,级别3 = [{}] * 3

以上是 Python:定义多个相同类型的变量? 的全部内容, 来源链接: utcz.com/qa/259795.html

回到顶部