Arkanium77

Заполнение массива диагоналями

Oct 2nd, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.49 KB | None | 0 0
  1. def gen2d(ar,c=2):
  2.     max_len = max([len(str(e)) for r in ar for e in r])+c
  3.     s=""
  4.     for row in ar:
  5.         for el in row:
  6.             s+="{:>{length}}".format(el,length=max_len)
  7.         s+="\n"
  8.     return s
  9.    
  10. def genTable(ar):
  11.     max_len=0
  12.  
  13.     for i in range(len(ar)):
  14.         for j in range(len(ar[i])):
  15.             if len(str(ar[i][j]))>max_len:
  16.                 max_len=len(str(ar[i][j]))
  17.     max_len+=2
  18.     s="┏"+("━"*max_len+"┳")*len(ar[i])
  19.     s=s[:len(s)-2]+"┓\n"
  20.     for i in range(len(ar)):
  21.         for j in range(len(ar[i])):
  22.             t="┃"+str(ar[i][j]).center(max_len)
  23.             s+=t
  24.         s=s[:len(s)-1]+"┃\n┣"+("━"*max_len+"╋")*len(ar[i])
  25.         s=s[:len(s)-2]+"┫\n"
  26.     t=len(s)-len("┃\n┣"+("━"*max_len+"╋")*len(ar[len(ar)-1]))
  27.     #print(t)
  28.     s=s[:t+1]+"\n"+"┗"+("━"*max_len+"┻")*len(ar[i])
  29.     s=s[:len(s)-2]+"┛"
  30.     return s
  31.  
  32. def print2d(ar,type_=1):
  33.     if type_==0:
  34.         print(genTable(ar))
  35.     else:
  36.         print(gen2d(ar))
  37.            
  38.  
  39. n=int(input("Please, input a number of rows in matrix, n= "))
  40. m=int(input("Please, input a number of columns in matrix, m= "))
  41.  
  42. matrix = [[0 for _ in range(m)] for _ in range(n)]
  43. count = 0
  44. start = 0
  45. for k in range(n):
  46.     for i in range(start, m):
  47.         line = k
  48.         for j in range(i,-1,-1):
  49.             if line < n:
  50.                 matrix[line][j] = count
  51.                 count += 1
  52.                 line += 1
  53.         start = i
  54. print2d(matrix)
Add Comment
Please, Sign In to add comment