我创建了一个嵌套列表推导,以便从2d数组中打印出一些文本;但是,当我同时打印输出时,我的2d数组和列表推导会返回2个不同的结果。
我该如何解决?
列表理解是我今晚刚学到的东西,所以我不太了解。
我的代码:
for a in range(int(numOfColumns)):
for b in range(numOfRows):
# print(Matrix)
print(Matrix[b][a]),
result = "".join(["".join(row) for row in Matrix])
print(result)
print("\n")
print(Matrix)
答案 0 :(得分:2)
您的for
循环的等效列表理解为:
result = ''.join(Matrix[b][a] for a in range(int(numOfColumns)) for b in range(numOfRows))
将这样的两个列表理解链接起来并不是我期望在Python中常规看到或编写的东西,但是它受支持。不幸的是,在索引“错误的方法”以简化工作时似乎很有必要。
请注意,这也将相对较慢地执行,因为您将以无法预料到CPU缓存的方式访问内存。如果您可以按照@nicholishen的建议安排事物的顺序,那么事物将会更快-显然在这里不可能
答案 1 :(得分:1)
您需要在理解中嵌套第二个for循环,就像在详细的嵌套循环中一样。例如:
m = ['EXCELLENT', 'WORK', 'YOU', 'HAVE']
for a in m:
for b in a:
print(b)
result = ''.join(b for a in m for b in a)
print(result)