gpt4 book ai didi

python - 如何以直线打印元组中的列表

转载 作者:太空宇宙 更新时间:2023-11-04 00:58:52 26 4
gpt4 key购买 nike

我有一个 python 程序,我在其中填充了一个包含 7 个列表的元组,每个列表包含 5 个整数。我希望它们像这样以直线打印:

ROW1   R0W2   ROW3   ROW4   ROW 5
3 5 7 6 5
5 4 3 7 8

等等……

我编写了以下代码,但它以直线打印:

numbers= [[3,4,5,6,7],[4,5,7,8,9],[6,7,9,5,3],[3,23,56,67,4],
[54,67,4,3,2],[4,5,6,7,7],[8,8,8,8,8]]
variable = 1
for w1 in numbers:
print 'Row:', variable,
for w2 in w1:
print w2,
variable += 1

最佳答案

您可以使用 str.format mini-language ,您将需要获得位数最多的数字,并使用该数字对齐或居中使其适用于任何数据:

numbers = [[3, 4, 5, 6, 7], [4, 5, 7, 8, 9], [6, 7, 9, 5, 3], [3, 23, 56, 67, 4],
[54, 67, 4, 3, 2], [4, 5, 6, 7, 7], [8, 8, 8, 8, 8]]

print(" ".join(["Row{:<2}".format(i) for i in range(1, len(numbers[0])+1)]))
for w1 in numbers:
print("".join(["{:^6}".format(i) for i in w1]))

输出居中^:

Row1  Row2  Row3  Row4  Row5 
3 4 5 6 7
4 5 7 8 9
6 7 9 5 3
3 23 56 67 4
54 67 4 3 2
4 5 6 7 7
8 8 8 8 8

左对齐:

print(" ".join(["Row{:<2}".format(i) for i in range(1, len(numbers[0])+1)]))
for w1 in numbers:
print("".join(["{:<6}".format(i) for i in w1]))

输出:

Row1  Row2  Row3  Row4  Row5 
3 4 5 6 7
4 5 7 8 9
6 7 9 5 3
3 23 56 67 4
54 67 4 3 2
4 5 6 7 7
8 8 8 8 8

如果您希望每个子列表都是一列,您可以使用 zip transpose:

print("".join(["Row{:<3}".format(i) for i in range(1, len(numbers)+1)]))
for w1 in zip(*numbers):
print("".join(["{:<6}".format(i) for i in w1]))

输出:

Row1  Row2  Row3  Row4  Row5  Row6  Row7  
3 4 6 3 54 4 8
4 5 7 23 67 5 8
5 7 9 56 4 6 8
6 8 5 67 3 7 8
7 9 3 4 2 7 8

要处理任何数据,我们需要找到最长的字符串,我们可以用 max 来做,并将其用作证明的数量:

numbers = [[3, 4, 5, 6, 7], [4, 5, 3333232327, 8, 9], [6, 7, 9, 5, 3], [3, 23, 56, 67, 4],
[54, 67, 4, 3, 2], [4, 5, 6, 7, 3237], [8, 8, 8, 8, 8] ]
mx = max(len(str(i)) for sub in numbers for i in sub) + 1

print("".join(["Row{:<{mx}}".format(i,mx=mx-3) for i in range(1, len(numbers)+1)]))
for w1 in zip(*numbers):
print("".join(["{:<{mx}}".format(i, mx=mx) for i in w1]))

输出:

Row1       Row2       Row3       Row4       Row5       Row6       Row7       
3 4 6 3 54 4 8
4 5 7 23 67 5 8
5 3333232327 9 56 4 6 8
6 8 5 67 3 7 8
7 9 3 4 2 3237 8

关于python - 如何以直线打印元组中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766367/

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