Advertisement
VolinNilov

Untitled

Jun 9th, 2023
497
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.52 KB | None | 0 0
  1. # Для замены элементов, сумма индексов которых является чётной, на нули, можно использовать следующий код:
  2. #arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  3. #for i in range(len(arr)):
  4. #    for j in range(len(arr[i])):
  5. #        if (i + j) % 2 == 0:
  6. #            arr[i][j] = 0
  7. #print(arr)
  8.  
  9. #Чтобы реализовать программу посредством объектно-ориентированного подхода, можно создать класс Table с методами gen(), rows(), cols(), elems(), show(), stat(), а также вспомогательными методами, необходимыми для функционирования класса и специальной функции, определённой вариантом.
  10. #Для сортировки двумерного массива внутри класса можно использовать метод sort() с параметром key, как описано выше. Для замены элементов, сумма индексов которых является чётной, на нули, можно использовать метод replace_even():
  11.  
  12. class Table:
  13.     def __init__(self, rows, cols):
  14.         self.rows = rows
  15.         self.cols = cols
  16.         self.data = [[random.randint(0, 9) for j in range(cols)] for i in range(rows)]
  17.  
  18.     def gen(self):
  19.         self.data = [[random.randint(0, 9) for j in range(self.cols)] for i in range(self.rows)]
  20.  
  21.     def rows(self):
  22.         return self.rows
  23.  
  24.     def cols(self):
  25.         return self.cols
  26.  
  27.     def elems(self):
  28.         return self.rows * self.cols
  29.  
  30.     def show(self):
  31.         for row in self.data:
  32.             print(row)
  33.  
  34.     def stat(self):
  35.         stats = {}
  36.         for i in range(10):
  37.             stats[str(i)] = 0
  38.         for row in self.data:
  39.             for elem in row:
  40.                 stats[str(elem)] += 1
  41.         return stats
  42.  
  43.     def replace_even(self):
  44.         for i in range(self.rows):
  45.             for j in range(self.cols):
  46.                 if (i + j) % 2 == 0:
  47.                     self.data[i][j] = 0
  48.                    
  49.                  
  50.                
  51. table = Table(3, 4)
  52. table.show()
  53. table.replace_even()
  54. table.show()
  55. print(table.stat())    
  56.  
  57. #Обратити внимание, что в методе stat() возвращается словарь, содержащий количество каждого элемента в массиве.
Advertisement
Comments
  • VolinNilov
    331 days
    # text 0.18 KB | 0 0
    1. Результат:
    2. [7, 5, 0, 9]
    3. [7, 8, 5, 3]
    4. [7, 6, 6, 7]
    5. [0, 5, 0, 9]
    6. [7, 0, 5, 0]
    7. [7, 6, 6, 7]
    8. {'0': 5, '1': 0, '2': 0, '3': 2, '4': 0, '5': 4, '6': 4, '7': 6, '8': 1, '9': 4}
Add Comment
Please, Sign In to add comment
Advertisement