为什么这样做:
"".join(str(i) for i in range(10))
这不是吗?
for i in range(10):
... "".join(str(i))
我希望第二个输出相同的1-9位数字符串。 我是python的新手。
答案 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
需要构建一个列表来分配目标字符串。直接传递列表可以加快这一过程。