Как стать автором
Обновить

Be Pythonic

Время на прочтение 3 мин
Количество просмотров 16K
Всего голосов 92: ↑86 и ↓6 +80
Комментарии 57

Комментарии 57

Спасибо, очень интересно!
Спасибо, очень интересно!
Спасибо, очень интересно!
Спасибо, очень интересно!
Спасибо, очень интересно!
C-C-C-COMBO BREAKER!
Перечитал 3 раза, захватывающее чтиво.
Очень интересно, спасибо!
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Даешь синусоиду в комментариях :)
НЛО прилетело и опубликовало эту надпись здесь
Спасибо, очень интересно!
Спасибо, очень интересно!
Ээээ… За что заминусовали человека?
НЛО прилетело и опубликовало эту надпись здесь
Спасибо, очень интересно!
Спасибо, очень интересно!
Эхх, как мне не хватало подобной статьи когда я начинал знакомиться с Питоном.
Однозначно продолжать!
Действительно, куча вот таких вот особенностей может остаться за бортом, если изучаешь Python после C, Java или подобных. Как чуть было не получилось у меня.

Обязательно продолжайте.
Я конечно извиняюсь, но вся эта информация содержится в официальном tutorial. Или вы начинали знакомиться с питоном в обход официальной документации?
Жду дальнейших переводов :)
иногда очень помогает перечитать туториалы и whats new.
Я больше года делал вот так, когда нужно было пройтись по всех элементам списка с их нумерацией:
i=0
for x in some_list:
print i,x
i+=1
хотя можно было обойтись функцией enumerate, на которую я наткнулся в whats new какой то версии питона, в более старых учебниках соответственно этого не было
for i,x in enumerate(some_list):
print i,x
Когда у меня возникла такая же задача, я первым делом погуглил, потому что был уверен, что в таком красивом языке должен быть красивый способ.
я когда сам написал, потому что не знал, что есть готовое
def enumerate(some_list):
  return zip(range(len(some_list), some_list)
НЛО прилетело и опубликовало эту надпись здесь
К счастью, это можно понять из следующего предложения. А заголовок призывает не смешивать понятия кортежа и списка.
НЛО прилетело и опубликовало эту надпись здесь
Здесь есть тонкость. Кортеж — это список (в полном смысле этого русского слова), но не list (понимаемый как тип данных).
Кстати, что значит «неизменяемый» применительно к кортежу — тоже не все понимают. И уверены, что код

x = 1,2,3
x += 4,5

работать не будет.

Ну и могут вообще не понять, что тут с кортежами идет работа, особенно если помнят «операцию запятая» в Си и применяют свои знания в питоне.
очень интересно, хотелось бы еще примеры для переходящих с Пых-Пыха
ножно купить книжку, говорят, чтение помогает получить новые знания, не дожидаясь «еще примеров» ;)
Здорово, но про «Кортеж — это не список, который нельзя редактировать» не согласен, т.к. в разделе показан пример, который будет работать и со списком, который также можно распаоквывать. Так что лично для меня, tuple по-прежнему остается списком, который нельзя редактировать.

Если я чего-то не знаю, расскажите, пожалуйста.
Упс, это я поторопился. Да, пример верный.
Хм, а я ничего нового не прочел. Видимо я не так плохо знаю Python. Спасибо за поднятие ЧСВ=)
«Этот пример сортирует список словарей по значению, соответствующему ключу 'key'»
Видимо, должно быть: «соответствующему ключу 'price'»
Верно, спасибо.
Ждем продолжение.
НЛО прилетело и опубликовало эту надпись здесь
К хорошему привыкаешь быстро ;-)
НЛО прилетело и опубликовало эту надпись здесь
Да. После питона на php писать становится грустно.
После питона писать надо на питоне, а не на php
Для себя я теперь на php не пишу. Для заказчиков, увы, приходится.
кстати в питоне и JS есть очень много общего… на первый взгяд не так заметно, но изнутри очень родные
Ну, Python на Javascript довольно-таки похож. Я за месяц примерно освоился, даже меньше
НЛО прилетело и опубликовало эту надпись здесь
Большое спасибо за статью. Недавно публиковал тут код на Питоне. Пришлось провести немало времени, выясняя, что есть pythonic, а что не очень. Такого рода статьи в тот момент я не нашел. А жаль — очень бы пригодилась.

Думаю такие публикации были бы полезны и по другим языкам, потому что осваивая что-то новое часто бывает очень не просто отказаться от привычек программирования на «родном» языке. А надо. 8)
Прочитал про парсинг csv файла и хочу сказать, что это просто охуительно!
Не зря я осваиваю Джангу. Питон — потрясающий язык. Позади — basic)), pascal, asp, perl, php, вот пришел к Питону. Дальше хочу за плюсы.

Питон, я иду! :)
Не пугайте его так, он хороший.
Я тоже хороший :)
Хорошие советы, кроме «Скажите «нет» геттерам и сеттерам». Использование property может легко сделаеть код не проще и понятнее, а скорее наоборот, запутаннее и «магичнее».

Раздел «функции — это объекты» был бы отличной демонстрацией того, где в питоне стоит применять лямбда-функции:

L.sort(key=lambda item: item['price'])

а, ну и название переменной L не по pep-8 :)
Про выполнение кучи всего в одной строке — не самый удачный пример у изначального автора.

Такие строки не сходу понимаешь и вероятность багов в них растёт, как комменты «Спасибо, понравилось!» в вверху.

Т.е. концепция вроде правильная, но пример для культуры писания не удачен. Писать надо понятно, ибо мы большую часть времени код читаем.
С моей точки зрения, если знать эти приемы, то читаемость повысится. Это же строки не в 400 символов длиной
Дык не все же мы знаем — есть старшие программеры, а есть просто программеры.

А код д.б. понимаем всеми как минимум, пусть даже талант к его созданию есть тока у страших товарищей.

Т.е. я лично болею за читаемость. Либо такие заносы в отдельные функции/методы выкидывать.
Главное так и не было сказано — для цикла for есть конструкция:

for i, item in enumerate(mylist):
    pass
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории