В цикле for метод списка .insert() вставляет весь список вместо элемента
Не могу понять, почему метод insert() вставляет весь список, а не выбранный элемент?
Прошу не кидайтесь камнями, я только учусь, гуглить пробовал, но ничего не нашел.
Я не ищу решения моего кода, я ищу совета и объяснения, почему insert вместо вставки элемента sumnum[i] вставляет каждый свой элемент подряд и только потом вставляются оставшиеся элементы из другого списка.
import random
def FillList(size):
mylist=[random.randint(0,9) for i in range(size)]
sumnum=[]
print("My list before changed: {}".format(mylist))
for i in range(size-1):
sumnum.append(mylist[i]+mylist[i+1])
print("My sumnumbers: {}".format(sumnum))
for i in range(size-1):
mylist.insert(i+1,sumnum[i]) #С этой строчкой у меня возникает не понимание
print("My list after changed: {}".format(mylist))
size=5
FillList(5)
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Метод insert() вставляет item в список по указанному индексу.
Все элементы после item сдвигаются вправо.
Метод insert() ничего не возвращает.
Он только обновляет текущий список.
Я не уверен что правильно понимаю то, что вы хотите получить, но мне показалось что вам надо сделать так:
import random
def fillList(size):
mylist = [random.randint(0, 9) for i in range(size)]
sumnum = []
print(f"Мой список до изменения: {mylist}\n")
for i in range(size-1):
sumnum.append(mylist[i] + mylist[i+1])
print(f"My sumnumbers : {sumnum}")
j = 0 # !!! +++
for i in range(size-1):
mylist.insert(i+1+j, sumnum[i]) # !!! +++
j += 1 # !!! +++
print(f"\nMy list after changed : {mylist}")
size = 5
fillList(size)
