Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def letters_to_ASCII(martix):
- """Analyse values in matrix and replace letters to ASCII code,
- creating an array of values which have been replaced.
- """
- values_to_replace = []
- for row in matrix:
- for value in row:
- if isinstance(value, str):
- row[row.index(value)] = ord(value)
- values_to_replace.append(ord(value))
- return matrix, values_to_replace
- def get_matrix_params(matrix):
- """Function return matrix length and matrix values,
- sorted from min to max
- """
- matrix_length = len(matrix)
- matrix_values = []
- for row in matrix:
- for value in row:
- matrix_values.append(value)
- matrix_values.sort()
- return matrix_length, matrix_values
- def create_new_matrix(matrix_length, matrix_values):
- """
- Create a new matrix with a diagonal with minimum values
- """
- minimal_diagonal = matrix_values[:matrix_length]
- other_values = matrix_values[matrix_length:]
- new_matrix = []
- while other_values:
- new_matrix.append(other_values[:matrix_length - 1])
- other_values = other_values[matrix_length - 1:]
- for i in range(matrix_length):
- new_matrix[i].insert(i, minimal_diagonal[i])
- return new_matrix
- def ASCII_to_letters(new_martix, values_to_replace):
- """Analyse values in matrix and replace ASCII to letters
- in previously replaced values
- """
- for row in new_martix:
- for value in row:
- if value in values_to_replace:
- row[row.index(value)] = chr(value)
- return new_martix
- if __name__ == '__main__':
- matrix = [[83, 255, -99, 711, 'w', 199],
- [670, 'Q', 134, 219, 164, 178],
- [135, 123, 330, 241, 177, 213],
- ['q', 169, 143, 154, 194, 126],
- [956, 459, 444, 122, 555, 453],
- [333, 677, 888, 832, 245, 228]]
- ASCII_matrix, values_to_replace = letters_to_ASCII(matrix)
- matrix_length, matrix_values = get_matrix_params(ASCII_matrix)
- new_matrix = create_new_matrix(matrix_length, matrix_values)
- result_matrix = ASCII_to_letters(new_matrix, values_to_replace)
- for row in result_matrix:
- print(row)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement