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