2013-02-20 39 views
0

我想创建两个空的列表对象。我试图用使用单个命令创建两个对象是否可行?

vList,sList = [],[] 

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

对于(空)字符串也一样吗?

+0

我认为是可以的,但是如果你在逗号后面加空格会更好。 – Keith 2013-02-20 07:05:53

回答

1

有没有不良副作用,除非你使用

vList = sList = [] 

两个变量它引用到相同的列表。

我不认为PEP8对此有任何说明,但我会说在两条线上拆分作业会读得更好。

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

+0

在这种情况下,vList的更改也发生在sList中,对吗? – RubenGeert 2013-02-20 06:57:06

+0

@RubenGeert是的,他们做 – Volatility 2013-02-20 06:57:18

+0

如果对象是_related_和分配很简单,它可能实际上看起来更好。 – gorlum0 2013-02-20 07:25:54

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

有没有有害的副作用,如果你记住,正确的在任何任务发生之前,手边都会得到充分评估。

相关问题