У меня есть простой цикл:Python - как заставить enumerate начинаться с 1 - или обходной путь?
for index, (key, value) in enumerate(self.addArgs["khzObj"].nodes.items()):
, и я хочу, чтобы начать новую WX горизонтальную BoxSizer после каждого 3-го пункта, чтобы создать панель с 3-мя узлами каждый и продолжались в течение, как многие, как и в узлах. Очевидным решением является:
if index % 3 == 0: add a horizontal spacer
но перечисление начинается с 0, поэтому 0% 3 == 0, и было бы начать новую строку с места в карьер. Я пробовал делать:
if index == 0: index = index + 1
но, конечно, не работает, потому что он создает новый вар вместо изменения оригинала - так что я получаю 1, 1, 2, 3, 4, и т.д., и что не будет работать, потому что я получу 4 узла до того, как я нажму индекс% 3 == 0.
Любые предложения о том, как это сделать? Это не большой список, обычно только около 10-15 предметов. Благодарю.
Читайте. . Документация. 'pydoc enumerate' меньше усилий, чем спрашивать здесь ... –
Аналогичный вопрос уже был задан в http://stackoverflow.com/questions/3303608/how-to-enumerate-a-range-of-numbers-starting- at-1 – prabhugs