由于作者选择使用\
换行延续,该行有些令人困惑。该行更容易阅读没有这些:
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