Поскольку в вашей функции есть присваивание list =
, list
будет считаться локальной переменной в этой функции, поэтому она не связана с параметром, передаваемым в функцию.
У вас есть нескольковарианты:
Вернуть новый список:
list2 = [1,2,3,4,5,6,7]
def insert(lst,index,element):
lst = lst[:index] + [element] + lst[index:]
return lst
и присвоить возвращаемое значение:
list2 = insert(list2, 3, 7) # the insert method updates the list in place
print(list2)
Или вам нужно изменить исходный список, не создавая новыйone:
def insert(lst,index,element):
lst.insert(index, element)
insert(list2, 3, 7)
print(list2)
Но тогда эта функция не слишком полезна, поэтому просто сделайте
list2.insert(3, 7)
В качестве примечания, избегайте использования list
в качествеимя переменной, поскольку она будет затенять оригинальную встроенную функцию list
.