Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 24, 2010 20:27:35

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Вопрос о грамотности

# coding: utf8

arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

z = []
for a in arr:
z += a
print z

Офлайн

#2 Апрель 24, 2010 20:31:31

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Вопрос о грамотности

o7412369815963
например? притягивать сюда своё исключение за уши?
Почему бы и нет? Это только одна-две строки кода. Вполне себе ничего. По крайней мере читабельнее, чем for/else.

except Exception as e:
print e
таким способом можно не только выход из 2-х цыклов сделать но и из 100 и из функции…
Таким способом вы ловите все возможные исключения. Не смущает?



Отредактировано (Апрель 24, 2010 20:32:45)

Офлайн

#3 Апрель 24, 2010 20:36:27

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Вопрос о грамотности

import operator

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

b = reduce(operator.iadd, a, [])
..bw



Офлайн

#4 Апрель 24, 2010 23:41:29

knkd
От:
Зарегистрирован: 2009-06-14
Сообщения: 225
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос о грамотности

bw
b = reduce(operator.iadd, a, )
import itertools

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print list(itertools.chain(*a))
-> [1, 2, 3, 4, 5, 6, 7, 8, 9]



Офлайн

#5 Апрель 25, 2010 11:21:44

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос о грамотности

bw
import operator

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

b = reduce(operator.iadd, a, [])
..bw
а через лямбды не кошерно чтоли?)
reduce(lambda x, y: x + y, a, [])



Офлайн

#6 Апрель 25, 2010 13:23:38

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Вопрос о грамотности

> а через лямбды не кошерно чтоли?)

Как-то я их разлюбил, да, собственно, они никогда мне не нравились :-).
В данном примере мой код, ИМХО, читабельнее. Ну и еще вариант с itertools хорош.

..bw



Офлайн

#7 Апрель 25, 2010 16:08:39

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос о грамотности

bw
В данном примере мой код, ИМХО, читабельнее.
я пока не слазил и не посмотрел че такое iadd понять ничего не мог, так что не знаю уж… да еще и импорт целой библиотеки.



Офлайн

#8 Апрель 25, 2010 17:38:55

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Вопрос о грамотности

bw
В данном примере мой код, ИМХО, читабельнее.
а если ф-ия чуть по сложнее понадобиться то “operator” пролетает. а с lambda удобно

Офлайн

#9 Апрель 25, 2010 19:14:44

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Вопрос о грамотности

operator - это хорошо и быстро. Используйте его везде, где можно.



Офлайн

#10 Апрель 25, 2010 20:24:56

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Вопрос о грамотности

А к чему все эти лишние сущности вообще?

sum(a, [])



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version