我在一个Python项目中使用这个for循环
for year in yearsindex:
for month in monthindex:
for hour in hourindex:
for node in nodeindex:
dosomething(year, month, hour, node)
我想知道是否有一种方法可以将所有的迭代器组合成一个迭代器,以提高可读性
以…的形式出现的东西
for (year, month, hour, node) in combinediterator:
dosomething(year, month, hour, node)
这是^{} :
你可以看到,把所有这些塞进一条逻辑线上并不是真正的可读性改进。有几种方法可以使它得到改进。例如,如果您可以避免对迭代器提供的元组进行解包,或者您可以将
itertools.product
的参数放在一个列表中,并用*args
解包:如果循环体比
dosomething
的一行长,那么还可以减少缩进。对于一个短环体,这并不重要。你知道吗为什么不把它以生成器的形式封装在函数定义中,就像这样:
相关问题 更多 >
编程相关推荐