Комментарии 34
Просто отлично. Большое спасибо.
0
полезно, спасибо… про классы до вас как-то не задумывался.
0
Обнаружил, что знаю эти фишки ровно через одну :) т.е. «самое распространенное применение», «можно проворачивать со строками, кортежами и списками» и «можно вставлять элементы»
Спасибо за пост.
Спасибо за пост.
0
Сильно.
но могут быт слайсы с трема параметрами
но могут быт слайсы с трема параметрами
0
>> list(range(
видимо примеры под 3й питон, стоит пометить.
>> перенес в питой блог.
очепяточка.
видимо примеры под 3й питон, стоит пометить.
>> перенес в питой блог.
очепяточка.
0
Спасибо, интересно. Один из часто задаваемых вопросов — как «развернуть» строку(кортеж, список):
>>>s = «Hello Dolly!»[::-1]
>>>print s
!ylloD ,olleH
Прекрасно, я считаю — интуитивно понятно, коротко и ясно.
>>>s = «Hello Dolly!»[::-1]
>>>print s
!ylloD ,olleH
Прекрасно, я считаю — интуитивно понятно, коротко и ясно.
+2
Нет, не спрашивайте меня, откуда взялась запятая :) Это не подтасовка, это опечатка.
+1
Да, ещё, дума, стоит ли написать, что тут есть маленький подводный камешек:
Copy Source | Copy HTML
- >>> s = "Hello Dolly!"
- >>> s[ 0:len(s):-1]
- ''
- >>> #то была пустая строка
- >>> s[ 0:len(s)]
- 'Hello Dolly!'
0
Да, камень большой, когда я сам начал разбираться со срезами я наверное полчаса потратил пока не нашёл нужный вариант. О, эти прекрасные s[:-len(s)-1:-1], s[len(s):-len(s)-1:-1] и т.д. :) В конце концов внимательно(!) перечитал документацию, подумал, и немного продвинулся в понимании принципов языка.
Ожидаемо? Да. Привычно? Уже тоже да.
Ожидаемо? Да. Привычно? Уже тоже да.
0
Много времени прошло, надеюсь Вы еще на сайте. Сможете ответить, что тут будет выведено?
arr = [range(1, 20)]
print(arr[0:len(arr)-1:-1])
print(arr[0:len(arr)-2:-1])
print(arr[0:len(arr)-3:-1])
0
Как-то умышленно запутано. Зачем писать такой код?
Весь "трюк" в том что len(arr) = 1
( arr
будет [ [ 1, 2, ... 19 ] ]
). Учитывая содержания этого треда, дальше все понятно, Но лучше такой код просто не писать.
0
Не очень понятно — неужели кто-то этого не знал? А если не знал, то как можно учить язык ни разу не прочитав доку по нему?
0
Если бы все доку читали, то подобные статьи были бы ненужны. Да и вообще, большинство книг тоже. Оно конечно есть в доках, там просто сильно разсредоточено. Или это сарказм?
0
Да какой сарказм? Просто я так учу языки — читаю доку, чтобы представлять что в языке есть, потом уже пытаюсь программировать.
+2
Никогда не используйте в качестве имени переменной одиночные буквы «l», «I», «O» (PEP 8, правила именования)
0
Когда читаю такие статьи — понимаю как люди не любят читать документацию, даже если она небольшая и понятная.
+1
документация и учебник — разные вещи. Для меня документация ето прежде всего место где можно почитать про вещи которые о существовании которых я знаю, но самих их я не знаю. Как учебник, она не слишком хороша, особенно в местах, где просто перечень фукнций, и что они делают.
Например, как узнать о возможности срезов с шагом, просто читая документацию, ту ее часть, что не reference?
Например, как узнать о возможности срезов с шагом, просто читая документацию, ту ее часть, что не reference?
+1
Хм, а разве language reference — не часть документации? Я вот считаю, что Tutorial-ы — это не совсем документация, а больше обзор самого необходимого… Про слайсы и работу с ними в классах говорится в 3-ей главе language reference (Data Model) — кстати, очень толково написано — советую.
За статью спасибо — из нового для себя вынес такой неочевидный способ обращения строки (хотя всё равно применяю ''.join(reversed('Hello Dolly')), но две закрывающиеся скобки навевают грусть и печаль).
За статью спасибо — из нового для себя вынес такой неочевидный способ обращения строки (хотя всё равно применяю ''.join(reversed('Hello Dolly')), но две закрывающиеся скобки навевают грусть и печаль).
0
Такие срезы и их синтаксис позаимствовали из Матлаба, похоже. Ну и хорошо, удобно ведь.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Всё, что Вы хотели знать о слайсах