如何将列表解析放入连接函数中我运行了这个:
q = 1283634 print(f'{" ".join([str(q)[i:i+3] for i in range(len(str(q)),0,3)])}')
并打印
>>>
但我希望能打印出来
>>> 1 283 634
有人能解释一下我做错了什么吗?
mwngjboj1#
问题是你的范围错了。使用str(q)的长度作为起始值,使用0作为结束值。你应该做相反的事情:range(0, len(str(q), 3)。如果你想向后迭代,你可以使用一个负步骤:range(len(str(q)), 0, -3)请记住,range的形式如下:range(start, stop, step=1),其中start是起始索引,stop是结束索引,step是可选的,是索引的增量。
str(q)
range(0, len(str(q), 3)
range(len(str(q)), 0, -3)
range
range(start, stop, step=1)
4smxwvx52#
试试这个
q = 1283634 #Joining # First number # Rest of number in pair of 3 print(" ".join( [str(q)[0]] + [str(q)[i:i+3] for i in range(1, len(str(q)), 3)]))
输出量或者你可以用这种方式
q = 1283634 formatted_q = "{:,}".format(q).replace(",", " ") print(formatted_q)
输出量这里"{:,}".format(q)将返回一个格式化的字符串,像这样"1,283,634",然后使用replace方法,我只是用一个空格“”替换“,”。
"{:,}".format(q)
"1,283,634"
replace
2条答案
按热度按时间mwngjboj1#
问题是你的范围错了。使用
str(q)
的长度作为起始值,使用0作为结束值。你应该做相反的事情:range(0, len(str(q), 3)
。如果你想向后迭代,你可以使用一个负步骤:range(len(str(q)), 0, -3)
请记住,
range
的形式如下:range(start, stop, step=1)
,其中start是起始索引,stop是结束索引,step是可选的,是索引的增量。4smxwvx52#
试试这个
输出量
或者你可以用这种方式
输出量
这里
"{:,}".format(q)
将返回一个格式化的字符串,像这样"1,283,634"
,然后使用replace
方法,我只是用一个空格“”替换“,”。