【问题标题】:List comprehension / loop confusion列表理解/循环混淆
【发布时间】:2018-05-11 09:52:15
【问题描述】:

我不知道如何措辞..但我有一个例子和一个简单的解释我想要做什么..

工作:

for characters in [world.characters for world in self.worlds]:
    for character in characters:
        print(character.name)

我想做什么:

for characters in [world.characters for world in self.worlds]:
    for character in characters:
        print("Character {0} in World {1}".format(character.name, world.name))

所以我希望能够从循环范围内的列表理解中访问world。我不知道该怎么做。非常感谢任何帮助。

【问题讨论】:

  • what's 不适用于您建议的代码。您是否收到任何可以分享的错误或回溯(如果有,请edit 问题并复制并粘贴整个错误/回溯文本)?
  • world 不在我的循环范围内,因为它仅在列表理解中定义。所以我得到未解决的参考/ NameError

标签: python list loops list-comprehension


【解决方案1】:
for world in self.worlds:
    for character in world.characters:
        print("Character {0} in World {1}".format(character.name, world.name))

【讨论】:

  • 可能是您最简单的答案!我不知道我脑子里在想什么.. 使用列表推导一段时间,并以某种方式创建了一个不存在的需求(它不能在传统循环中完成,世界 - > 世界 - > characters -> character) 抱歉浪费了您的时间。
  • 没问题。在过去的几年里,我一直在努力适应列表推导(由另一个非常 Pythonic 的程序员推动)。但有时常规循环更容易。实际上整个事情可能可以在嵌套列表理解中完成,但这似乎不值得。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-16
  • 1970-01-01
  • 1970-01-01
  • 2022-11-30
  • 2013-09-24
  • 2018-12-16
  • 1970-01-01
相关资源
最近更新 更多