spflmm 发表于 2023-3-17 17:34:31

reverse()问题

matrix = [,
          ,
          ]
for i in range(len(matrix)):
    print(matrix.reverse())

我想把子列表里面的数都反转过来,反转成,,,为什么写成上面这个样子后结果显示为None,None,None呢?
请大神赐教,谢谢。

isdkz 发表于 2023-3-17 17:37:44

你好!这个问题是因为reverse()函数没有返回一个新的列表,而是直接修改了原来的列表,并返回None。

所以当你尝试打印matrix].reverse()时,输出的是None。你可以通过下面的方法修正代码:

matrix = [,
          ,
          ]
for i in range(len(matrix)):
    matrix.reverse()
    print(matrix)

这样,matrix].reverse()会直接修改matrix],然后你可以打印出修改后的matrix]。

这个修改后的代码将输出:



歌者文明清理员 发表于 2023-3-17 17:55:13

isdkz 发表于 2023-3-17 17:37
你好!这个问题是因为reverse()函数没有返回一个新的列表,而是直接修改了原来的列表,并返回None。

所 ...

补充:如果不想修改源列表,可以使用 python 内置的 reversed() 方法,然后将 reversed() 返回的 reversed_iterator 对象转换为列表,代码如下:
    rev = list(reversed(matrix))
    print(rev)
页: [1]
查看完整版本: reverse()问题