#!/usr/bin/python numbers = [1, 2, 3, 5, 6, 7] clean = numbers.insert(3, 'four') print clean # desire results [1, 2, 3, 'four', 5, 6, 7]
Я получаю "Нет". Что я делаю не так?
Методы Mutating в списках, как правило, возвращают None, , а не измененный список, как вы ожидаете - такие методы выполняют свое действие, изменяя список на месте, а не создавая и возвращая новый один. Таким образом, print numbers вместо print clean покажет вам измененный список.
None
print numbers
print clean
Если вам нужно сохранить numbers без изменений, сначала вы делаете копию, а затем изменяете копию:
numbers
clean = list(numbers) clean.insert(3, 'four')
это имеет тот общий эффект, который вам нужен: numbers без изменений, clean - измененный список.
clean
Метод вставки изменяет список на месте и не возвращает новую ссылку. Попробуйте:
>>> numbers = [1, 2, 3, 5, 6, 7] >>> numbers.insert(3, 'four') >>> print numbers [1, 2, 3, 'four', 5, 6, 7]
Оператор list.insert () ничего не возвращает, что вы, вероятно, хотите:
insert вставит элемент в указанный список. Напечатайте числа вместо этого, и вы увидите свои результаты. insert не возвращает новый список.
a=[1,2,3,4,5] a.insert(2,"hello world") print(a)
ответ: [1, 2, 'hello world', 3, 4, 5]
[1, 2, 'hello world', 3, 4, 5]
если я использую это
a=[1,2,3,4,5] print(a,a.insert(2,"hello world"))
ответ: [1, 2, 'hello world', 3, 4, 5] None
[1, 2, 'hello world', 3, 4, 5] None