gpt4 book ai didi

python - 打印二维列表,每个数字右对齐

转载 作者:行者123 更新时间:2023-12-01 07:18:33 26 4
gpt4 key购买 nike

我需要逐行打印一个二维列表,列表中的每个数字右对齐。我使用了嵌套循环和格式化但失败了。如何更改代码?

def print_suqare(square):
for line in square:
for i in line:
print(str(i).rjust(10), sep = " ")

我希望有一个像

这样的列表
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]

应打印为

1  2  3  4
5 6 7 8
9 10 11 12

最佳答案

当前代码通过 print 调用为每个单元格添加一个换行符,导致每个元素都出现在自己的行上。您可以将命名参数 end="" 传递给 print,然后在打印每一行后手动添加换行符:

def print_square(square):
for line in square:
for i in line:
print(str(i).rjust(10), end="")

print()

if __name__ == "__main__":
print_square([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

或者您可以使用 * 解压列表,如下一个示例所示,并可选择使用 sep 命名参数。参数化焊盘数量并为其指定默认值也很好,从而提高了可重用性。

def print_square(square, pad=10):
for line in square:
print(*[str(i).rjust(pad) for i in line], sep=" ")

或者您可以使用加入:

def print_square(square, pad=10):
for line in square:
print(" ".join(str(x).rjust(pad) for x in line))

或者,您可以根据最长元素动态确定填充:

def print_square(square):
pad = max(len(str(x)) for y in square for x in y)

for line in square:
print(" ".join(str(x).rjust(pad) for x in line))

关于python - 打印二维列表,每个数字右对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57828587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com