2017-08-31 53 views
0

我知道,創建列表,你可以縮短几行到類似的信息(在python):縮短循環通過管道發送命令 - 蟒蛇

a = [k*2 for k in range(10)] 

你能做到這一點,通過發送數據時管道。 (在這種情況下使用多處理模塊)。例如:

k = 'hello' 
[channel.send(k) for channel in channels] 

代替:

k = 'hello' 
for channel in channels: 
    channel.send(k) 

任何建議將是巨大的!提前致謝。

編輯:已回答。列表理解錯誤的想法。只要保持整齊的一行:

k = 'hello' 
for channel in channels: channel.send(k) 
+0

你可以,但你不應該。 https://twitter.com/raymondh/status/902658204345049088 –

+2

在這種情況下,不應該使用列表理解。只有在您嘗試構建值列表時才應使用它們。如果你只需要遍歷一個迭代器,就使用一個普通的for循環。 –

+1

此外,你的兩個例子有*確切*相同的長度;列表理解用'['和']'替換':'和換行符。實際上,你可以在同一行寫'for'循環,在這種情況下,列表理解*更長*,效率更低。 – chepner

回答

2

號列表理解是創建列表。如果你不想要列表,不要使用列表理解。當使用for循環時,沒有什麼問題。

+0

我明白你的意思。取而代之的是保持一個for循環,也許只是在一行上。謝謝 – Rob123

+1

我甚至不會把它放在一條線上。換行符提供了正在迭代的內容和每個迭代對象之間的直接明確區別。保存一行代碼沒有意義。 – chepner