【问题标题】:Generator is empty after initial use [duplicate]初次使用后生成器为空[重复]
【发布时间】:2018-06-30 02:55:10
【问题描述】:

我刚开始学习python Generator 对于以下代码获取空白列表

Aircraft_typelst = ['Boeing','Airbus','MiJ','goes']
upper_case_name = ( name.upper() for name in Aircraft_typelst )
print(list(upper_case_name))
reverse = (rev[::-1]for rev in upper_case_name)
print(list(reverse))

输出

['BOEING', 'AIRBUS', 'MIJ', 'GOES']
[]

【问题讨论】:

  • 一个生成器只能“使用”一次。在第一个list(upper_case_name) 之后,生成器耗尽。
  • @Satyam 你想用生成器吗?
  • 是的,我正在使用生成器

标签: python python-3.x list generator


【解决方案1】:

问题是你试图重用

生成器对象不能重复使用

# Problem is you are trying to reuse
# Generator object cannot be reused
Aircraft_typelst = ['Boeing','Airbus','MiJ','goes']
upper_case_name = ( name.upper() for name in Aircraft_typelst )
print(list(upper_case_name))
# Instead of it you can use it as
reverse = (rev[::-1 ]for rev in ( name.upper() for name in Aircraft_typelst) )
print(list(reverse))

输出

['BOEING', 'AIRBUS', 'MIJ', 'GOES']
['GNIEOB', 'SUBRIA', 'JIM', 'SEOG']

【讨论】:

  • ...小错字。
  • @user202729 谢谢修复
猜你喜欢
  • 2015-07-01
  • 2018-11-08
  • 2018-11-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
  • 2015-02-05
  • 1970-01-01
相关资源
最近更新 更多