Учитывая матрицу (N + 1) * N, назначьте каждому столбцу 1-й строки матрицы последующую строку матрицы.
Вход : test_list = [[5, 8, 10], [2, 0, 9], [5, 4, 2], [2, 3, 9]]
выходной : {5: [2, 0, 9], 8: [5, 4, 2], 10: [2, 3, 9]}
объяснение : 5 в паре с 2-го ряда, 8 с 3-м и 4-м 10 с
Ввод : test_list = [[5, 8], [2, 0], [5, 4]]
Выход : {5: [2, 0], 8: [5, 4]}
Пояснение : 5 в паре со 2-м рядом, 8 с 3-м.
Метод № 1 : Использование понимания словаря
Это один из способов, которым может быть выполнена эта задача. В этом случае мы выполняем итерацию для строк и соответствующих столбцов с помощью цикла и присваиваем список значений соответствующим образом однострочным способом, используя понимание словаря.
# Python3 code to demonstrate working of
# Assigning Subsequent Rows to Matrix first row elements
# Using dictionary comprehension
# initializing list
test_list = [[5, 8, 9], [2, 0, 9], [5, 4, 2], [2, 3, 9]]
# printing original list
print("The original list : " + str(test_list))
# pairing each 1st col with next rows in Matrix
res = {test_list[0][ele] : test_list[ele + 1] for ele in range(len(test_list) - 1)}
# printing result
print("The Assigned Matrix : " + str(res))
Выход:
Первоначальный список : [[5, 8, 9], [2, 0, 9], [5, 4, 2], [2, 3, 9]]
Назначенная Матрица : {5: [2, 0, 9], 8: [5, 4, 2], 9: [2, 3, 9]}
Метод № 2 : Использование zip() + нарезка списка + dict()
Это еще один способ, которым можно выполнить эту задачу. При этом мы срезаем элементы так, чтобы они были первой строкой и последующими строками, используя срез списка, а zip() выполняет задачу необходимой группировки. Возвращенный
# Python3 code to demonstrate working of
# Assigning Subsequent Rows to Matrix first row elements
# Using zip() + list slicing + dict()
# initializing list
test_list = [[5, 8, 9], [2, 0, 9], [5, 4, 2], [2, 3, 9]]
# printing original list
print("The original list : " + str(test_list))
# dict() to convert back to dict type
# slicing and pairing using zip() and list slicing
res = dict(zip(test_list[0], test_list[1:]))
# printing result
print("The Assigned Matrix : " + str(res))
Выход:
Первоначальный список : [[5, 8, 9], [2, 0, 9], [5, 4, 2], [2, 3, 9]]
Назначенная Матрица : {5: [2, 0, 9], 8: [5, 4, 2], 9: [2, 3, 9]}