Форум сайта python.su
# coding: utf8
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
z = []
for a in arr:
z += a
print z
Офлайн
o7412369815963Почему бы и нет? Это только одна-две строки кода. Вполне себе ничего. По крайней мере читабельнее, чем for/else.
например? притягивать сюда своё исключение за уши?
except Exception as e:Таким способом вы ловите все возможные исключения. Не смущает?
print e
таким способом можно не только выход из 2-х цыклов сделать но и из 100 и из функции…
Отредактировано (Апрель 24, 2010 20:32:45)
Офлайн
import operator
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = reduce(operator.iadd, a, [])
Офлайн
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]
Офлайн
bwа через лямбды не кошерно чтоли?)..bwimport operator
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = reduce(operator.iadd, a, [])
reduce(lambda x, y: x + y, a, [])
Офлайн
> а через лямбды не кошерно чтоли?)
Как-то я их разлюбил, да, собственно, они никогда мне не нравились :-).
В данном примере мой код, ИМХО, читабельнее. Ну и еще вариант с itertools хорош.
..bw
Офлайн
bwя пока не слазил и не посмотрел че такое iadd понять ничего не мог, так что не знаю уж… да еще и импорт целой библиотеки.
В данном примере мой код, ИМХО, читабельнее.
Офлайн
bwа если ф-ия чуть по сложнее понадобиться то “operator” пролетает. а с lambda удобно
В данном примере мой код, ИМХО, читабельнее.
Офлайн
operator - это хорошо и быстро. Используйте его везде, где можно.
Офлайн
А к чему все эти лишние сущности вообще?
sum(a, [])
Офлайн