【问题标题】:How can i avoid generator error in python coding如何避免python编码中的生成器错误
【发布时间】:2021-04-01 05:08:30
【问题描述】:
pizza={
       'crust':'thick',
       'toppings':['Mushroom','cheese','pineapple'],
       }

for i in pizza['toppings']:
    print(i)


print(x for x in pizza['toppings'])

当谈到最后一行时,一条消息显示为“” 而不是我预期的结果。我希望结果与上面在“for循环”中打印的结果相同

【问题讨论】:

  • for thing in things: do_stuff_with(thing)do_stuff_with(thing for thing in things) 意味着完全不同的东西。您不应该期望能够用另一个替换一个。
  • 你试过了吗:print(*pizza['toppings'])print(*pizza['toppings'], sep='\n')
  • 非常感谢 Monica,我是 python 新手,我认为它们是相同的,因为在某些情况下结果是相同的。如果可以的话,请你解释一下这两个?即 for thing in things do_stuff_with(thing) 和 do_stuff_with(thing for thing in things)

标签: python for-loop generator


【解决方案1】:

您的代码实际上创建了一个generator 对象。 如果您想使用list 而不是generator,可以使用方括号

print([x for x in pizza['toppings']])

输出

['Mushroom', 'cheese', 'pineapple']

【讨论】:

    【解决方案2】:
    print(*pizza['toppings'], sep = ", ") 
    

    输出

    Mushroom, cheese, pineapple  
    

    【讨论】:

      猜你喜欢
      • 2012-10-06
      • 2013-06-23
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      相关资源
      最近更新 更多