用一个命令创建两个对象是否可以?

时间:2013-02-20 06:45:44

标签: python

我想创建两个空列表对象。我试着用

vList,sList = [],[]

这似乎有效。我从未在任何手册中看到过这一点(但我的Python仍然非常基础)。对于非空列表,我会说这样做会损害可读性,但是可以使用相同的空列表吗?这被认为是不好的做法还是是否有任何不良副作用

(空)字符串是否相同?

2 个答案:

答案 0 :(得分:1)

这是正确的方法。即使多次赋值对于像你这样的简单案例似乎没有用,也可以考虑这样的事情(解压缩一个稍微复杂的序列):

>>> d = { 'a': 'x', 'b': 'y', 'c': 'z' }
>>> for i, (key, value) in enumerate(d.iteritems()):
...     print (i, key, value)
(0, 'a', 'x')
(1, 'c', 'z')
(2, 'b', 'y')

如果您记住在进行任何作业之前对右侧进行了全面评估,则没有任何有害的副作用。

答案 1 :(得分:1)

除非您使用

,否则没有不良副作用
vList = sList = []

将两个变量引用到同一个列表中。

我不认为PEP8对此有任何说法,但我会说将两个分配的分配更好。

然而,正如@ gorlum0所提到的,如果对象是相关的并且相对简单,那么使用元组解包可能更好。如果它们不相关,那么读者可能会非常困惑,试图找出你为什么把它们放在一条线上。