You are currently viewing Python – Назначение последующих строк элементам первой строки матрицы

Python – Назначение последующих строк элементам первой строки матрицы

Учитывая матрицу (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]}