与 for 循环一起使用的 String join() 方法

loo*_*123 2 python int join

我需要你的帮助,因为我不明白为什么可以使用join()带有for循环作为参数的方法。

前任:

" ".join(str(x) for x in list)
Run Code Online (Sandbox Code Playgroud)

Python 文档:

str.join(iterable) 返回一个字符串,它是可迭代中字符串的串联。

TypeError如果 iterable 中存在任何非字符串值(包括字节对象),则会引发A 。元素之间的分隔符是提供此方法的字符串。

可以请有人解释一下吗?

Jam*_*mes 5

该语句(str(x) for x in list)称为生成器表达式

>>> (str(x) for x in [1,2,3])
<generator object <genexpr> at 0x7fc916f01d20>
Run Code Online (Sandbox Code Playgroud)

其作用是创建一个可以迭代一次的对象,并生成一次创建一个的元素。您可以像迭代列表一样迭代它,如下所示:

>>> gen = (str(x) for x in [1,2,3])
>>> for s in gen:
...     print s
... 
1
2
3
Run Code Online (Sandbox Code Playgroud)

生成器表达式是可迭代的,因此 join 函数所做的就是迭代它并连接它的值。