2017-02-19 7 views
1

Возможно ли преобразовать этот код в одну строку?Возможно ли преобразовать этот код в одну строку

for x in xrange(m): 
    for y in xrange(n): 
     e.append(c[y][x]) 
    f.append(''.join(e)) 
    e=[] 

Мой неполное решение:

e=[(c[y][x]) for x in xrange(m) for y in xrange(n)] 

Я не знаю, как добавить две последние строки ... Есть ли способ, чтобы добавить эти последние две строки в моем неполном растворе?

ответ

0

Это может сделать трюк:

f = [''.join(c[y][x] for y in xrange(n)) for x in xrange(m)] 
#   ^^^^^^^^^^^^^^^^^^^^^^^^^^---- generator expression for e 

Ваш внешний цикл составляет f, не e. Это также предполагает, что f и e - это пустые списки в начале внешнего цикла. Если бы вы строили плоский список с вложенным пониманием, у вас были бы области for -выражения справа;)

+1

Хорошо. Спасибо, сэр. И спасибо за редактирование. Хехе :-) –