Guest User

Untitled

a guest
Jan 18th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.86 KB | None | 0 0
  1. a=[]
  2. k=10
  3. for r in range(7):
  4. a.append([])
  5. for c in range(7):
  6. a[r].append(k)
  7. k+=1
  8. print(a[0]);print(a[1]);print(a[2]);print(a[3]);print(a[4]);print(a[5]);print(a[6])
  9.  
  10. def swap1(a):
  11. n = len(a)
  12. for i in range(n):
  13. a[i][i], a[n-i-1][i] = a[n-i-1][i], a[i][i]
  14.  
  15.  
  16. def show(a):
  17. for r in a:
  18. print (', '.join(['{:2d}'.format(i) for i in r]))
  19.  
  20. a = [[j + i*7 + 1 for j in range(7)] for i in range(7)]
  21.  
  22. show(a)
  23. swap1(a)
  24. print()
  25. show(a)
  26.  
  27. 1, 2, 3, 4, 5, 6, 7
  28. 8, 9, 10, 11, 12, 13, 14
  29. 15, 16, 17, 18, 19, 20, 21
  30. 22, 23, 24, 25, 26, 27, 28
  31. 29, 30, 31, 32, 33, 34, 35
  32. 36, 37, 38, 39, 40, 41, 42
  33. 43, 44, 45, 46, 47, 48, 49
  34.  
  35. 43, 2, 3, 4, 5, 6, 49
  36. 8, 37, 10, 11, 12, 41, 14
  37. 15, 16, 31, 18, 33, 20, 21
  38. 22, 23, 24, 25, 26, 27, 28
  39. 29, 30, 17, 32, 19, 34, 35
  40. 36, 9, 38, 39, 40, 13, 42
  41. 1, 44, 45, 46, 47, 48, 7
  42.  
  43. In [98]: import numpy as np
  44.  
  45. In [99]: a = np.arange(1, 50).reshape(7, -1)
  46.  
  47. In [100]: print(a)
  48. [[ 1 2 3 4 5 6 7]
  49. [ 8 9 10 11 12 13 14]
  50. [15 16 17 18 19 20 21]
  51. [22 23 24 25 26 27 28]
  52. [29 30 31 32 33 34 35]
  53. [36 37 38 39 40 41 42]
  54. [43 44 45 46 47 48 49]]
  55.  
  56. In [101]: a[np.diag_indices_from(a)], a[:, ::-1][np.diag_indices_from(a)] =
  57. np.fliplr(a).diagonal().copy(), a.diagonal().copy()
  58.  
  59. In [102]: print(a)
  60. [[ 7 2 3 4 5 6 1]
  61. [ 8 13 10 11 12 9 14]
  62. [15 16 19 18 17 20 21]
  63. [22 23 24 25 26 27 28]
  64. [29 30 33 32 31 34 35]
  65. [36 41 38 39 40 37 42]
  66. [49 44 45 46 47 48 43]]
  67.  
  68. >>> import numpy as np
  69. >>> a = np.arange(49).reshape(7, -1)
  70. >>> a
  71. array([[ 0, 1, 2, 3, 4, 5, 6],
  72. [ 7, 8, 9, 10, 11, 12, 13],
  73. [14, 15, 16, 17, 18, 19, 20],
  74. [21, 22, 23, 24, 25, 26, 27],
  75. [28, 29, 30, 31, 32, 33, 34],
  76. [35, 36, 37, 38, 39, 40, 41],
  77. [42, 43, 44, 45, 46, 47, 48]])
  78. >>> old_main_diagonal = a.diagonal().copy()
  79. >>> np.fill_diagonal(a, np.flipud(a).diagonal())
  80. >>> np.fill_diagonal(np.flipud(a), old_main_diagonal)
  81. >>> a
  82. array([[42, 1, 2, 3, 4, 5, 48],
  83. [ 7, 36, 9, 10, 11, 40, 13],
  84. [14, 15, 30, 17, 32, 19, 20],
  85. [21, 22, 23, 24, 25, 26, 27],
  86. [28, 29, 16, 31, 18, 33, 34],
  87. [35, 8, 37, 38, 39, 12, 41],
  88. [ 0, 43, 44, 45, 46, 47, 6]])
  89.  
  90. >>> a = np.arange(49).reshape(7, -1)
  91. >>> a
  92. array([[ 0, 1, 2, 3, 4, 5, 6],
  93. [ 7, 8, 9, 10, 11, 12, 13],
  94. [14, 15, 16, 17, 18, 19, 20],
  95. [21, 22, 23, 24, 25, 26, 27],
  96. [28, 29, 30, 31, 32, 33, 34],
  97. [35, 36, 37, 38, 39, 40, 41],
  98. [42, 43, 44, 45, 46, 47, 48]])
  99. >>> old_main_diag_in_reverse = a.diagonal()[::-1].copy()
  100. >>> np.fill_diagonal(a, np.fliplr(a).diagonal())
  101. >>> np.fill_diagonal(np.flipud(a), old_main_diag_in_reverse)
  102. >>> a
  103. array([[ 6, 1, 2, 3, 4, 5, 0],
  104. [ 7, 12, 9, 10, 11, 8, 13],
  105. [14, 15, 18, 17, 16, 19, 20],
  106. [21, 22, 23, 24, 25, 26, 27],
  107. [28, 29, 32, 31, 30, 33, 34],
  108. [35, 40, 37, 38, 39, 36, 41],
  109. [48, 43, 44, 45, 46, 47, 42]])
Add Comment
Please, Sign In to add comment