Python 打印嵌套列表的内存地址而不是列表内容
Python prints memory addresses of nested lists rather than list contents
这段代码,我希望按照 [[7, 4, 1], [8, 5, 2], [9, 6, 3]]
的方式打印一些东西,而不是打印这个:
[<map object at 0x7f8c1f578e10>, <map object at 0x7f8c1f578ef0>, <map object at 0x7f8c1f578fd0>]
#!/usr/bin/env python3
def transpose(matrix):
results = [None] * len(matrix)
for subIndex in range(len(matrix)):
results[subIndex] = map((lambda sub : sub[subIndex]), matrix)
return results
def rotateClockwise(matrix2):
reversedmatrix = list(reversed(matrix2))
rotated = transpose(reversedmatrix)
return rotated
def main():
m = [[1,2,3],[4,5,6],[7,8,9]]
output = rotateClockwise(m)
return output
if __name__ == "__main__":
x = main()
print(x)
这是为什么?我该如何解决?
map
函数不 return 列出。它 returns 映射对象。
您可以删除 map
列表推导函数,在 python 中是首选。
更改此行:
results[subIndex] = map((lambda sub : sub[subIndex]), matrix)
为此:
results[subIndex] = [sub[subIndex] for sub in matrix]
这段代码,我希望按照 [[7, 4, 1], [8, 5, 2], [9, 6, 3]]
的方式打印一些东西,而不是打印这个:
[<map object at 0x7f8c1f578e10>, <map object at 0x7f8c1f578ef0>, <map object at 0x7f8c1f578fd0>]
#!/usr/bin/env python3
def transpose(matrix):
results = [None] * len(matrix)
for subIndex in range(len(matrix)):
results[subIndex] = map((lambda sub : sub[subIndex]), matrix)
return results
def rotateClockwise(matrix2):
reversedmatrix = list(reversed(matrix2))
rotated = transpose(reversedmatrix)
return rotated
def main():
m = [[1,2,3],[4,5,6],[7,8,9]]
output = rotateClockwise(m)
return output
if __name__ == "__main__":
x = main()
print(x)
这是为什么?我该如何解决?
map
函数不 return 列出。它 returns 映射对象。
您可以删除 map
列表推导函数,在 python 中是首选。
更改此行:
results[subIndex] = map((lambda sub : sub[subIndex]), matrix)
为此:
results[subIndex] = [sub[subIndex] for sub in matrix]