使用splat运算符时删除空格

时间:2017-08-09 13:30:11

标签: python list-comprehension

我有以下代码:

print(*[((i+1) * '*' + '\n') for i in range(rows)])

产生输出:

*
 **
 ***
 ****
 *****

所需的输出是:

*
**
***
****
*****

坚持一条线,怎么办呢?我尝试使用.strip(' '),如此:

print(*[((i+1) * '*' + '\n').strip(' ') for i in range(rows)])

但它会产生相同的结果。与.replace(' ', '')

相同

2 个答案:

答案 0 :(得分:2)

sep参数作为空字符串传递:

>>> print(*[((i+1) * '*' + '\n') for i in range(rows)], sep='')
*
**
***
****
*****

或者在打印前使用'\n'.join构建字符串:

>>> print('\n'.join((i+1) * '*' for i in range(rows)))
*
**
***
****
*****

答案 1 :(得分:1)

您可以通过两种方式获得所需的输出。如果你坚持使用参数扩展(" splat运算符"),你可以传递sep=''。或者,您可以使用join构建所需的字符串:

print('\n'.join((i+1) * '*' for i in range(rows)))