2013-02-20 66 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') 

有沒有有害的副作用,如果你記住,正確的在任何任務發生之前,手邊都會得到充分評估。

相關問題