【发布时间】: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)]) -
@OlvinRoght 不,不是。
-
@HeapOverflow,是的,它是生成器表达式,我知道,只是这个文档更明显
-
列表推导和生成器表达的区别相当重要,因为后者本质上是“懒惰的”,而前者是“贪婪的”。