是否可以将此python代码转换为单行

时间:2017-02-19 05:40:44

标签: python-2.7 for-loop

是否可以将此代码转换为一行?

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)]

我不知道如何添加最后两行...... 有没有办法在我不完整的解决方案中添加最后两行?

1 个答案:

答案 0 :(得分:0)

这可能会起到作用:

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

您的外部循环编译f,而不是e。这也假设fe在外部循环的开头是空列表。如果你一直在构建一个带有嵌套理解的平面列表,那么for - 表达式的范围就是正确的;)