我正在尝试用python制作2d网格。网格的大小可能会有所不同,但最大的网格可能是20 X 20,并且给定列表的内容应打印在每个单元格内,每个单元格的宽度为4个字段空间。最左侧细胞中的内容物应以左为中心,最远细胞中的内容物应以右为中心,其余的内容物应以细胞内部为中心 这是我的密码:
def first(a):
print('+', end = ' ')
for i in range(a-1):
print('%4s%s' %('-','+'), end = ' ')
print('%4s%s' %('-','+'))
def second(list_):
for index in list_:
print('|', end = ' ')
for num in index:
print('%s%d%2s|' %('', num, ''), end = ' ')
print('%4s|' %(''))
def create_(a,b,list_):
first(a)
for i in range(b):
second(list_)
first(a)
list_ = [[1,2,3],[4,5,6],[7,8,9]]
create_(3,3,list_)
The output of the code is:
+ -+ -+ -+ -+
| 1 | 2 | 3 | |
| 4 | 5 | 6 | |
| 7 | 8 | 9 | |
.... (this is because it repeats 4 more times)
+ -+ -+ -+ -+
| 1 | 2 | 3 | |
| 4 | 5 | 6 | |
| 7 | 8 | 9 | |
+ -+ -+ -+ -+
And the output that I want is
+----------------+
|1 | 2 | 3|
+----+-----+-----+
|4 | 5 | 6|
+----+-----+-----+
|7 | 8 | 9|
+----------------+
我的问题很明显,我的输出不一样,但是 我该如何更动态地编码它,无论它生成了多少列或行,都会生成预期的网格,我已经对一些东西进行了硬编码,以获得我的输出,我认为这不是最好的方法
输出:
简单易懂:
输出:
您还可以使用熊猫:
输出:
试试这个:
输出:
唯一的问题是,如果数字是两位数或两位数以上,这将中断。不确定是否有办法解释这一点
相关问题 更多 >
编程相关推荐