任务是反向显示嵌套列表(列表中的每个嵌套列表都反向显示)。为什么我的输出显示而不是第一个嵌套列表None?我做错了什么?还是我一开始就做错了任务?
输出:
[None, [102, 7, 9], [105, 106, 102], [103, 98, 99, 100], [3, 2, 1]]
代码:
list1 = [[1, 7, 8], [9, 7, 102], [102, 106, 105], [100, 99, 98, 103], [1, 2, 3]]
for j in list1:
list1[0] = j.reverse()
print(list1)
错误在这一行:
该方法
reverse不返回任何结果,它只是反转列表本身j。因此,在某处分配是没有意义的
j.reverse()——它总是None相反,你应该这样写:
但是,您的代码中还有其他错误。
例如,每次你写一个新的反向列表而不是相同的第一个元素。
可以通过切片和列表包含来完成:
问题在于该函数
reverse()- 不返回新列表,它会更改初始值。这意味着作为该函数的结果,它的值将始终为
None。您可以简单地不为列表的元素赋值,但没有它:
输出
此外
您的代码的本质是将函数应用于列表的每个元素
reverse(),为此您可以使用内置函数map(),这是它的文档:输出