python - 打印列表时保持Python在换行后不留空格

标签 python list python-3.x line spaces

(是的,我已经到处寻找解决方案,而且,如果我看到它,我也无法解决我的问题。我是 Python 新手,抱歉!)

我有一项工作要做,它对我说: “用户将输入 X 和 Y。显示从 1 到 Y 的序列,每行仅包含 X 个元素。”

例如 2 4作为入口

1 2

3 4

例如 2 6

1 2

3 4

5 6

好吧...所以,我考虑这样做:

line, final = input().split()
line = int(line)
final = int(final)
List = []
i = 0
total = (final // line)
spot = 0
correction = 0
k = 1

if i != final:
List = list(range(1, final + 1, 1))
i += 1

while k != total:
spot = line * k + correction
correction += 1
k += 1
list.insert(List, spot, '\n')

print(*List)

好的。所以我设法构建了从 1 到“最终”变量的列表。 还设法找到将在哪些点(因此,var“spot”)创建我的新行。 (必须使用修正变量和一些数学来达到它,但它是 10/10)

到目前为止,一切都很好。 唯一的问题是这项工作应该在 URI Online Judge 上交付,它要求我的结果显示如下:

2 10作为入口

1 2

3 4

5 6

7 8

9 10

并且,使用我刚刚发布的代码,我得到以下结果:

1 2

 3 4

 5 6

 7 8 

 9 10

因此,它说我的代码是错误的。我已经尝试了一切来删除这些空格(我认为)。使用 sys 不起作用,因为它只打印一个参数。尝试使用 join (但我可能做错了,因为我还是新手)

嗯,我已经尝试了几乎所有的方法。希望有人能帮助我。

提前致谢:)

最佳答案

您已经构建了一个包含每个必要字符(包括换行符)的列表。因此,您有一个如下所示的列表:

[1, 2, '\n', 3, 4, '\n'...]

当您将参数解压到 print() 时,它会在每个参数之间放置一个分隔符,默认为空格。因此,它打印 1,然后是一个空格,然后是 2,然后是一个空格,然后是换行符,然后是一个空格...这就是为什么你有一个空格每行的开头。

不要在列表中插入换行符,而是使用 iternext 对该列表进行分块:

>>> def chunks(x, y):
...     i = iter(range(1, y+1))
...     for row in range(y//x):
...             print(*(next(i) for _ in range(x)))
...     t = tuple(i)
...     if t:
...             print(*t)
...
>>> chunks(2, 6)
1 2
3 4
5 6
>>> chunks(2, 7)
1 2
3 4
5 6
7

关于python - 打印列表时保持Python在换行后不留空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40169417/

相关文章:

Python 请求,返回 : Unexpected character encountered while parsing value: L. 路径

c++ - 在列表 C++ 中查找第一个和第二个元素

python-3.x - Python CSV 搜索列并使用 for 循环将值替换为另一个列

python - 如何迭代忽略 "deprecated"的 Python 枚举?

python-3.x - 在spyder中python 3的ipython控制台上出现变量问题

Python - 对 Pandas 数据框进行两次排序

python - OpenCV cv2.rectangle 输出二值图像

python - 使用 colorsys 将 RGB 转为 HSV

list - 减少 Common Lisp 中的循环列表

perl - 标量上下文中的列表赋值