У меня есть исходный список, содержимое которого определяется в другой функции, и я хочу добавить числа 0 и 5 в список, чтобы сделать расширенный список, без искажая оригинал. В этом приложении я знаю, что 0 и 5 никогда не будут частью исходного списка, поэтому меня не интересует дублирование. И меня тоже не интересует порядок или элементы.Python: расширение результата из функции встроенного списка()
По причинам, изложенным в другой вопрос, следующий не работает, потому что она развращает первоначальный список:
>>> orig = [1,6] >>> extended = orig >>> extended.extend([0,5]) >>> extended [1, 6, 0, 5] >>> orig [1, 6, 0, 5]
Одним из предложенных решений является использование встроенной в списке функций() , Это приводит к желаемому результату:
>>> orig = [1,6] >>> extended = list(orig) >>> extended.extend([0,5]) >>> extended [1, 6, 0, 5] >>> orig [1, 6]
Затем я попытался объединить 2-й и 3-й линии 2. Это дает результат «None», и только если вы распечатать его.
>>> orig = [1,6] >>> extended = list(orig).extend([0,5]) >>> extended >>> print extended None
То, что я в конечном итоге кодируются, который аккуратнее, чем любая из предыдущих попыток, это, с помощью конкатенации.
>>> orig = [1,6] >>> extended = orig + [0,5] >>> extended [1, 6, 0, 5] >>> orig [1, 6]
Но мой вопрос, почему не будет пример 3 работы? Это выглядит разумно (для меня), и оно не возвращает ошибку. Он просто производит «Нет».
Я использую Python 2.7.8.