【问题标题】:Python: why for loop is in the middle of join() function?Python:为什么 for 循环在 join() 函数的中间?
【发布时间】:2020-02-19 16:20:43
【问题描述】:

我不明白return 语句中的以下代码。 for 循环为什么在内置函数 join() 内部,而不是在语句中间的开头?

这是如何工作的?

def randomString(stringLength=10):
    """Generate a random string of fixed length """
    letters = string.ascii_lowercase
    return ''.join(random.choice(letters) for i in range(stringLength))

【问题讨论】:

  • 它是列表理解,语句应该有括号 []:return ''.join([random.choice(letters) for i in range(stringLength)])
  • @OlvinR​​oght 不,不是。
  • @HeapOverflow,是的,它是生成器表达式,我知道,只是这个文档更明显
  • 列表推导和生成器表达的区别相当重要,因为后者本质上是“懒惰的”,而前者是“贪婪的”。

标签: python for-loop


【解决方案1】:

它基本上循环它 stringLength 时间,并在每个循环中将一个字符发送到参数内部,然后它们彼此相邻

return ''.join(random.choice(letters) for i in range(stringLength))

它在字符串 '' 旁边添加了一些东西

OUTPUT

>>> ayyertffds

【讨论】:

  • 这个答案没有解释为什么可以这样写调用。它只会“解释”得到的结果。此外,措辞、标点和布局质量低下,您应该在答案下方添加 cmets。
  • @JanChristophTerasa 啊,好吧,我想解决它,我想我错过了
  • @JanChristophTerasa 很好地证明了我的 Python 知识到了一定程度我会尽力而为,但是是的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-04
相关资源
最近更新 更多