【发布时间】:2015-03-07 23:41:21
【问题描述】:
我有一个简单的 for 循环:
for index, (key, value) in enumerate(self.addArgs["khzObj"].nodes.items()):
并且我想在每 3 个项目之后启动一个新的 wx 水平 boxsizer,以创建一个面板,每个面板有 3 个节点,并且在节点中继续进行。显而易见的解决方案是:
if index % 3 == 0: add a horizontal spacer
但枚举从 0 开始,所以 0 % 3 == 0 并且它会立即开始一个新行。我试过这样做:
if index == 0: index = index + 1
但这当然行不通,因为它创建了一个新的 var 而不是更改原来的 - 所以我得到 1、1、2、3、4 等,这不起作用,因为我会得到 4在我达到索引 % 3 == 0 之前的节点。
关于如何做到这一点的任何建议?这不是一个大的枚举,通常只有大约 10-15 项。谢谢。
【问题讨论】:
-
阅读。这。文档。
pydoc enumerate比在这里问更省力... -
stackoverflow.com/questions/3303608/…已经回答了类似的问题
标签: python for-loop enumeration modulus