#python #matrix
#python #матрица
Вопрос:
У меня есть динамическая матрица, и я хочу изменить значения в одной из ячеек. Загвоздка в том, что я как бы жестко запрограммировал матрицу, поскольку она состоит из отдельных списков (не вложенного списка), которые печатаются один за другим.
Я знаю, что моя жизнь была бы намного проще, если бы вместо этого я использовал понимание списка или даже NumPy, но я хотел бы знать, есть ли решение для изменения значений, которые не используют ничего вложенного или импортированного.
rows = int(input("number of rows "))
columns = int(input("number of columns "))
row_1 = ["0"] * (columns)
row_2 = ["0"] * (columns)
row_3 = ["0"] * (columns)
row_4 = ["0"] * (columns)
if rows >= 1:
print(row_1)
if rows >= 2:
print(row_2)
if rows >= 3:
print(row_3)
if rows >= 4:
print(row_4)
# Change value in certain row and column
value = input("enter value")
rows = int(input("Row number "))
columns = int(input("Column number "))
# At this part the cell in the user-selected row and column is changed to inputted value
# but I'm not sure how to do it
Ответ №1:
Чтобы использовать индексацию пользователя, ваши списки должны быть соединены в последовательности. Да, вы могли бы пройти через некоторые неприятные препятствия, чтобы сгенерировать имя переменной из пользовательского ввода, но это очень плохая практика программирования.
master_list = [row_1, row_2, row_3, row_4]
master_list[rows][columns] = value
Да, это вложенная структура. Вы разработали вложенную концепцию, вы принимаете входные данные, которые подразумевают вложенную структуру. Если у вас есть серьезные возражения против решения этой проблемы с помощью вложенности, пожалуйста, уточните этот момент.