0

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

vList,sList = [],[]

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

(空)字符串也一样吗?

4

2 回答 2

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

如果您记住在进行任何分配之前对右侧进行了全面评估,则不会产生有害的副作用。

于 2013-02-20T06:51:19.083 回答
1

没有不好的副作用,除非你使用

vList = sList = []

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

我不认为 PEP8 对此有任何说明,但我会说将作业分成两行会更好读。

但是,正如@gorlum0 所提到的,如果对象是相关的并且相对简单,那么使用元组解包可能会更好。如果它们不相关,那么读者可能会很困惑,试图了解您为什么将它们放在一行中。

于 2013-02-20T06:51:38.133 回答