【问题标题】:What type of iterable is "x for x in y"?“x for x in y”是什么类型的迭代?
【发布时间】:2021-03-20 09:30:28
【问题描述】:

我一直对 Python 中的列表解析感到困惑,尽管它的简写 for 循环非常方便。我不确定下面 join() 函数的参数中的内容是否是列表解析,因为通常你会在周围放置 [] 以表明它是列表解析。

我的问题:str(x) for x in res[::-1] 在下面的join() 中产生的可迭代类型是什么?谢谢。

例如,

''.join( str(x) for x in res[::-1] )

【问题讨论】:

  • “虽然 for 循环的简写非常方便”——理解不是循环的简写。循环和推导是不同的东西。

标签: python generator iterable generator-expression


【解决方案1】:

这是一个generator expression,它本身就是一个可迭代对象。

但是,方括号仍然可以添加。参考Joining strings. Generator or list comprehension?

【讨论】:

  • 可能值得添加 str.join() 是特殊的,通常你不会想要添加括号,例如 summin/maxany/ all
猜你喜欢
  • 1970-01-01
  • 2021-08-07
  • 2011-03-21
  • 1970-01-01
  • 2011-01-07
  • 1970-01-01
  • 1970-01-01
  • 2018-05-07
  • 1970-01-01
相关资源
最近更新 更多