在python中使用break for循环连接函数

时间:2017-06-01 18:00:39

标签: python-3.x

为什么这样做:

"".join(str(i) for i in range(10))

这不是吗?

for i in range(10):
...     "".join(str(i))

我希望第二个输出相同的1-9位数字符串。 我是python的新手。

1 个答案:

答案 0 :(得分:2)

str.join需要一个可迭代的,在两种情况下都会提供。

在第一种情况下,生成器理解将数字提供给相同的join函数,并获得预期结果。

在第二种情况下,join将数字的字符作为字符串进行迭代,并将其重建为相同的(因此join在这里无效):

"".join(str(i))str(i)

相同

因为您打算打印这些表达式,所以最终会在每个数字之间添加换行符。在你的循环中,你需要print(i,end="")(python 3)

作为旁注

"".join([str(i) for i in range(10)])

稍微高一些
"".join(str(i) for i in range(10))

因为join需要构建一个列表来分配目标字符串。直接传递列表可以加快这一过程。