簡體   English   中英

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函數不返回列表。 它返回地圖對象。

您可以刪除map函數以實現列表理解,這在python中是首選的。

更改此行:

    results[subIndex] = map((lambda sub : sub[subIndex]), matrix)

為了這:

    results[subIndex] = [sub[subIndex] for sub in matrix]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM