В цикле 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)