Я создал для себя задачу кодирования
Я хочу изменить значения вложенного списка с помощью while l oop без создания нового списка
эта функция хорошо работает с однострочный вложенный список см. пример ниже
в основном это работает так: запуск l oop проверяет, является ли первое значение заданным типом c, если это так, заменяет значение go из l oop , снова запустите l oop -> первое значение уже заменено, поэтому индекс обновляется
, и он предшествует следующему значению, пока все значения не будут заменены
def insertdata(data):
data_added = False
n = len(listoflist[0])
index = 0
while not data_added and index != n:
if listoflist[0][index] is None:
listoflist[0][index] = data
data_added = True
else:
index += 1
if index == n:
print("\n The list is full, No more elements will be added \n")
Я хочу расширить функция, чтобы он мог заменять вложенные списки несколькими строками и столбцами
результат должен быть примерно таким
listoflist = [[None, None, None],[None, None, None]]
def _execute():
user_input = input("type in: ")
return user_input
while True:
def insertdata(_execute()):
input = 2
[[2, None, None],[None, None, None]]
input = 4
[[2, 4, None],[None, None, None]]
здесь я немного застрял
мой псевдокод:
rowindex = 0
main loop
# start second loop
start second loop
# performs the operation for the row [rowindex][columnindex]
# if all values replaced in the row
# go back to main loop update the row count and procede with the next column
пока что не работает должным образом
def insertdata(data):
row_index = 0
while row_index != len(listoflist):
# inner loop
data_added = False
n = len(listoflist[row_index])
index = 0
while not data_added and index != n:
if listoflist[row_index][index] is None:
listoflist[row_index][index] = data
data_added = True
else:
index += 1
# gets not executed
if index == n:
row_index += 1
break
проблема в том, как обновить rowindex во внешнем l oop и запустить внутренний l oop с обновлен rowindex?
пример fo r однорядный список
listoflist = [[None, None, None]]
def _execute():
user_input = input("type in: ")
return user_input
while True:
insertdata(_execute())
print(listoflist)