2015-12-17 8 views
6

Я новичок в Python, может кто-то пожалуйста, скажите мне разницу между выходом этих двух блоков кода:нарезка из списков в Python

1.

>> example = [1, 32, 1, 2, 34] 
>> example[4:0] = [122] 
>> example 
[1, 32, 1, 2, 122, 34] 

2.

>> example = [1, 32, 1, 2, 34] 
>> example[4:1] = [122] 
>> example 
[1, 32, 1, 2, 122, 34] 
+0

Я уверен, что строка одна и третья из двух блоков кода не являются допустимыми python, если вы не указали пример как список и т. Д. С не менее чем 123 элементами. –

+1

Подсказка: что означает 'example [4: 0]' return? Что относительно 'example [4: 1]'? И 'пример [4: 5]'? Попытайтесь понять, как работает нарезка, тогда вы можете вывести, почему ваши назначения делают то же самое. –

+0

Спасибо, ребята ... наконец поняли концепцию нарезки – kanishka

ответ

1

Здесь нет ничего плохого. Выход такой же, потому что единственная линия, которая отличается в двух кодовых snipets является

example[4:0] = [122] 

и

example[4:1] = [122] 

Они оба будут добавлять и присвоить значение 122 (я список размера при условии, одно значение == здесь) к элементу после этого в индексе 4. Так как число в верхней границе среза в обоих случаях меньше четырех, они не оказывают никакого эффекта.

5

Ваш нарезка дает пустой список с индексом 4, поскольку верхняя граница меньше нижней границы:

>>> example[4:0] 
[] 

>>> example[4:1] 
[] 

Этот пустой список заменяется списке [122]. Эффект такой же, как делают:

>>> example.insert(4, 122) 

Просто помните, что пустые списки и списки с одним элементом ничего особенного, даже несмотря на то, что они имеют эффекты при использовании их не так очевидно, в самом начале. Python tutorial имеет более подробную информацию.

+1

@kanishka Ответит ли это на ваш вопрос? –

Смежные вопросы