【问题标题】:variable length dictionary as iterator in nested loops [Python 3]可变长度字典作为嵌套循环中的迭代器 [Python 3]
【发布时间】:2021-03-30 05:42:42
【问题描述】:

我有一个字典和一个嵌套的 for 循环如下:

dictionary = {container: {row: [(tuple), (tuple)]}}

for box in box_df.index:
   for container in container_df.index:
      for row in dictionary[container].keys():
         if condition:
             dictionary[container][row + 1] = [(tuple)]

我需要的是,如果添加了新行,我想在按顺序移动到框之前尝试一下。如果我在条件之后使用continue,它会返回运行时错误,因为迭代器已更改大小。如果我使用break,它会移动到下一个框。

我有点卡住了。

【问题讨论】:

  • row 是字典键,row+1 是什么?
  • 如果 row+1 在键中不存在,则添加为新键。
  • 如需进一步帮助,您需要提供输入和输出示例。我不明白您需要从问题中得到什么

标签: python python-3.x pandas dictionary runtime-error


【解决方案1】:

为了避免迭代器在循环过程中发生变化,将其消耗到列表中,然后对列表进行迭代

for row in list(dictionary[container].keys()):

【讨论】:

  • 这修复了运行时错误问题,但并没有做我真正想要的。它首先移动到下一个框。
猜你喜欢
  • 2018-08-30
  • 2021-12-03
  • 1970-01-01
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 2014-01-21
相关资源
最近更新 更多