2013-12-26 3 views
1

Я изучаю Learnpythonthehardway, в ex40, я встретил этот фрагмент кода.Что здесь означает предложение [:]?

for sentence in snippet, phrase: 
    result = sentence[:] 

Я не совсем понимаю фразу [:] здесь, особенно [:]

Я попытался выяснить это с помощью основного тестового кода:

sentence = 'sss errf : fe : eee' 
f = 33 
result = sentence[:f] 
print result 

, но ничего бывает, результат такой же, как и предложение

Итак, умные вундеркинды, что здесь означает предложение [:]?

+1

Как объясняется @inclement, '[:]' используется для списков, но в этом упражнении 'предложение' является строкой, поэтому я не понимаю, почему он использовал' [:] '. – Valon

ответ

3

Это использование синтаксиса фрагмента списка python, который просто означает «скопировать весь список».

Вы можете часто делать что-то вроде some_list[:5], чтобы получить первые 5 элементов, или some_list[5:] получить все от пятого элемента и далее (или шестой элемент по направлению вперед, если считать Нулевое как первый, так как списки питона равны нулю индексированные) , Если вы так думаете, естественно, что синтаксис означает все: от первого элемента до последнего.

Важная вещь здесь заключается в том, что это создает копию , а не ссылку на исходный список. Это означает, что это может быть полезным способом клонирования списка, это не просто ничего не значит.

+0

Еще одно важное замечание состоит в том, что, хотя он создает копию списка, он все еще может содержать ссылки, а не копии, подписок. Чтобы этого избежать, используйте 'copy.deepcopy'. – rlms

+0

Большое спасибо, это действительно помогает. – Mario

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