python列表和元组的生成器?

a是一个列表
a = [i for i in range(1,101) if i % 2 == 1]
b是一个生成器
b =(i for i in range(1,101) if i % 2 == 1)

为嘛?

阅读 1.4k
2 个回答

不为嘛。前者叫 list comprehension,后者就是 generator,和元组并没有关系。

除了零元组外,别的元组的特征都是逗号,而不是小括号。很多时候加小括号是因为别的语法需要(比如你传参数的时候,不加小括号不是散开成多个参数了么)。如果你要返回一个元组,可以直接 return a, b, c 不用写小括号。

所以并没有 tuple comprehension,只有 list / dict / set 的版本。generator 只是长着像而已。

认为规定,没有为什么

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题