【问题标题】:Iterating over dict and values don't always print迭代 dict 和 values 并不总是打印
【发布时间】:2016-03-07 09:03:34
【问题描述】:

我在这里遇到了一个非常奇怪的问题,我无法弄清楚。以下代码第一次执行时,它会按照您的预期工作,城市和国家/地区被正确打印。之后每次都不会打印任何内容。

for tweet in tweets:
    city = tweet['city']
    country = tweet['country']
    print("{}, {}".format(city, country))

如果我只打印整个 dict,我可以看到该城市和国家都在其中,并且它们具有值。我确实在后台有一些工作线程来更新城市和国家/地区,但我不知道为什么会影响它,如果是的话。

【问题讨论】:

  • tweets 可能是一个只能使用一次的生成器。
  • 我们能看到更多的上下文代码吗?
  • 啊,谢谢@PaulH,返回并修复了我的 next 以在最后重置并解决问题。

标签: python python-3.x python-3.5


【解决方案1】:

对于碰巧遇到类似问题的任何人来说,问题是在我的 Tweet 类的 __next__ 函数中,我没有重置迭代器。因此,在对对象进行一次迭代后,该位置位于列表的末尾,并且永远不会放回到开头。

【讨论】:

    猜你喜欢
    • 2017-04-18
    • 2020-11-09
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多