是否可以将此代码转换为一行?
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 :(得分: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
- 表达式的范围就是正确的;)