Python在二维矩阵上打印行号和列号?

时间:2019-11-27 02:47:13

标签: python

我正在尝试如下打印输出。

字符串:[“ cat”,“ dog”,“ big”]

Print:
      0  1  2
0     c  a  t 
1     d  o  g
2     b  i  g

但是我似乎无法正确打印索引

for i in a:
  for j in i:
    print(j, end=' ')
  print()

我知道这会打印矩阵本身,但不会提供我需要的行号和列号

4 个答案:

答案 0 :(得分:1)

熊猫的理想工作:

import pandas as pd

lst = ["cat", "dog", "big"]

df = pd.DataFrame([[y for y in x] for x in lst])
print(df)

#    0  1  2
# 0  c  a  t 
# 1  d  o  g
# 2  b  i  g

答案 1 :(得分:1)

请尝试以下操作:

str_list = ["cat", "dog",  "big"]
print (" ", " ".join([str(x) for x in range(len(str_list))]))
for i, x in enumerate(str_list):
  print (i, " ".join(x))

Demo

答案 2 :(得分:0)

您可以通过以下代码在不使用任何库的情况下实现输出,否则,PANDAS将对oneliner有所帮助

str = ['cat','dog','big']

r = 0
c = 0
print('  ',end='')
for i in range(0,(max([len(i) for i in str]))):
    print(c,end=' ')
    c+=1
print()
for i in str:
    print(r,end=' ')
    for j in i:
        print(j , end=' ')
    print()
    r+=1

输出:

enter image description here

答案 3 :(得分:0)

Ta-da!无论列表大小如何,此解决方案都应该起作用。

str_list = ['cat', 'dog', 'loooong', 'big']

max_row_len = len(max(str_list, key=len))

#header
print('  ', end='')
print(*range(max_row_len), sep=' ')

#rows
for idx, val in enumerate(str_list):
    print(idx, end=' ')
    print(*val, sep=' ')

输出:

  0 1 2 3 4 5 6
0 c a t
1 d o g
2 l o o o o n g
3 b i g