由於作者選擇使用\
換行延續,該行有些令人困惑。該行更容易閱讀沒有這些:
for i in range(4):
for j in V[i].customers:
V[i].message = dict((k, array([1,1])) for k in V[i].customers)
我也刪除列表理解,沒有它的代碼更快。 dict()
調用中的循環現在是生成器表達式,並且它產生(key, value)
元組對,dict()
變成字典。
因此,對於4個不同的V[i].customers
序列,相應的V[i].message
屬性被重複設置爲相同的字典。這是相當無用的,因爲j
甚至沒有使用,所以for j
循環可能只是被刪除:
for i in range(4):
V[i].message = dict((k, array([1,1])) for k in V[i].customers)
接下來,如果V
只有有四項指標,你可以直接通過更換range()
用循環V
:
for v in V:
v.message = dict((k, array([1,1])) for k in v.customers)
,如果這段代碼被設計爲在Python 2.7版或更高版本(如果這樣的Python 2.6的兼容性不是必需的)運行,可以取代後者用字典解析:
for v in V:
v.message = {k: array([1,1]) for k in v.customers}
笑,如果我能有一美元每這裏有人張貼一個壞編寫的代碼的時間,並要求我們解釋一下......在\是爲了能夠繼續寫剩下的加代碼換行 – alfasin
這不是一個三重循環。你是否缺少一些代碼? – mrogers
@ mrogers確實,我現在糾正了這個問題 – Xptrz