Pull to refresh

Comments 34

Просто отлично. Большое спасибо.
Пожалуйста :)
очень приятно что это было интересно не только мне…
Читаю книгу по питону. Про срезы всё расписано в третей главе.
Какая книга? Например, в любимой Dive Into Python ничего нету про срезы с шагом, или как их перегружать.
Оператор получения среза имеет три формы записи:
seq[start]
seq[start:end]
seq[start;end:step]

Саммерфилд — Программирование на Python 3 / 2009 / стр. 90

Про перегрузку ничего не скажу, так далеко не дошёл :) Но думаю далее это будет рассказано на ряду с перегрузкой операторов.
Спасибо! О, можно заказать в библиотеке :)
Пойду читать.

З.Ы. Книга книге рознь.
полезно, спасибо… про классы до вас как-то не задумывался.
Обнаружил, что знаю эти фишки ровно через одну :) т.е. «самое распространенное применение», «можно проворачивать со строками, кортежами и списками» и «можно вставлять элементы»

Спасибо за пост.
Сильно.

но могут быт слайсы с трема параметрами
А за статью — спасибо. О параметре step не знал.
>> list(range(
видимо примеры под 3й питон, стоит пометить.

>> перенес в питой блог.
очепяточка.
Спасибо!
list(range( — чтобы работало во всех питонах. Это ведь не ман по созданию списков :)
Во втором, создаст копию с рейнджа.
Спасибо, интересно. Один из часто задаваемых вопросов — как «развернуть» строку(кортеж, список):
>>>s = «Hello Dolly!»[::-1]
>>>print s
!ylloD ,olleH

Прекрасно, я считаю — интуитивно понятно, коротко и ясно.
Нет, не спрашивайте меня, откуда взялась запятая :) Это не подтасовка, это опечатка.
Ну вот, с самого утра у меня день будет веселым :)
Спасибо!
Да, ещё, дума, стоит ли написать, что тут есть маленький подводный камешек:
Copy Source | Copy HTML
  1. >>> s = "Hello Dolly!"
  2. >>> s[ 0:len(s):-1]
  3. ''
  4. >>> #то была пустая строка
  5. >>> s[ 0:len(s)]
  6. 'Hello Dolly!'
Да, камень большой, когда я сам начал разбираться со срезами я наверное полчаса потратил пока не нашёл нужный вариант. О, эти прекрасные s[:-len(s)-1:-1], s[len(s):-len(s)-1:-1] и т.д. :) В конце концов внимательно(!) перечитал документацию, подумал, и немного продвинулся в понимании принципов языка.
Ожидаемо? Да. Привычно? Уже тоже да.
Много времени прошло, надеюсь Вы еще на сайте. Сможете ответить, что тут будет выведено?
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])

Как-то умышленно запутано. Зачем писать такой код?
Весь "трюк" в том что len(arr) = 1 ( arr будет [ [ 1, 2, ... 19 ] ]). Учитывая содержания этого треда, дальше все понятно, Но лучше такой код просто не писать.

Это надуманная фигня, которую пытался написать для того, чтобы разобраться. Потом почитал доки, прикинул возможную реализацию и все понял. За ответ спасибо!
Не очень понятно — неужели кто-то этого не знал? А если не знал, то как можно учить язык ни разу не прочитав доку по нему?
Если бы все доку читали, то подобные статьи были бы ненужны. Да и вообще, большинство книг тоже. Оно конечно есть в доках, там просто сильно разсредоточено. Или это сарказм?
Да какой сарказм? Просто я так учу языки — читаю доку, чтобы представлять что в языке есть, потом уже пытаюсь программировать.
Ваш метод очень хороший. Я начал питон с guide в доках. Но потом прочитал книжку, Dive Into Python. Если чесно, то для меня основным источником для новых языков есть книги. Думаю, таких людей очень много.
Никогда не используйте в качестве имени переменной одиночные буквы «l», «I», «O» (PEP 8, правила именования)
Хорошее замечание. Я об этом думал… Пойду переименую на =)
Когда читаю такие статьи — понимаю как люди не любят читать документацию, даже если она небольшая и понятная.
документация и учебник — разные вещи. Для меня документация ето прежде всего место где можно почитать про вещи которые о существовании которых я знаю, но самих их я не знаю. Как учебник, она не слишком хороша, особенно в местах, где просто перечень фукнций, и что они делают.
Например, как узнать о возможности срезов с шагом, просто читая документацию, ту ее часть, что не reference?
Хм, а разве language reference — не часть документации? Я вот считаю, что Tutorial-ы — это не совсем документация, а больше обзор самого необходимого… Про слайсы и работу с ними в классах говорится в 3-ей главе language reference (Data Model) — кстати, очень толково написано — советую.
За статью спасибо — из нового для себя вынес такой неочевидный способ обращения строки (хотя всё равно применяю ''.join(reversed('Hello Dolly')), но две закрывающиеся скобки навевают грусть и печаль).
Такие срезы и их синтаксис позаимствовали из Матлаба, похоже. Ну и хорошо, удобно ведь.
вспомнил MatLab, аж передернуло. Как же плохо нам его преподавали… Кстате, по запросу «matlab pyhon» гугл всякого интересного выдает. Сижу, читаю.
А зачем вас учили самому матлабу, неужели есть такой предмет? Мне преподовали прикладную математику и обработку сигналов, а задания надо было частично делать на матлабе, все его сами учили и друг у друга :)
уф… Это была часть курса «моделирование»…
Only those users with full accounts are able to leave comments. Log in, please.