Вам просто нужно найти первый список в списке списков с пробелом для обработки пользовательского ввода. После добавления пользовательского ввода вы можете просто вернуться - больше ничего не нужно делать. Вы получаете двойное добавление, потому что append()
находится в for-l oop
Вам также следует учитывать случай, когда больше элементов не может быть добавлено:
listoflist = [[],[],[],[],[]]
def _execute():
while True:
user_input = input("type in: ")
return user_input
def insertdata(data):
for l in listoflist:
if len(l) < 2:
l.append(data)
return
else:
print("no more space")
while True:
insertdata(_execute())
print(listoflist)
Вывод :
type in: 1
[['1'], [], [], [], []]
type in: 1
[['1', '1'], [], [], [], []]
type in: 1
[['1', '1'], ['1'], [], [], []]
type in: 1
[['1', '1'], ['1', '1'], [], [], []]
type in: 1
[['1', '1'], ['1', '1'], ['1'], [], []]
type in: 1
[['1', '1'], ['1', '1'], ['1', '1'], [], []]
type in: 1
[['1', '1'], ['1', '1'], ['1', '1'], ['1'], []]
type in: 1
[['1', '1'], ['1', '1'], ['1', '1'], ['1', '1'], []]
type in: 1
[['1', '1'], ['1', '1'], ['1', '1'], ['1', '1'], ['1']]
type in: 1
[['1', '1'], ['1', '1'], ['1', '1'], ['1', '1'], ['1', '1']]
type in: 1
no more space
[['1', '1'], ['1', '1'], ['1', '1'], ['1', '1'], ['1', '1']]