我使用此代码返回一个列表[1,2,3,4]
return (list.reverse())
但它根本不会返回正确的结果。我不得不使用
list.reverse()
return list
为什么会这样?当我分手我的问题并做
时list1 = list.reverse()
在console和print list1中,它只是打印“list1”
p.s: - 我是初学者,还在学习python。
答案 0 :(得分:7)
list.reverse
方法不返回任何内容。它适用于应用列表中的元素(修改列表)。因此,返回其结果将返回None
。这是教授:
>>>[].reverse() == None
True
如果您尝试以相反的顺序返回包含元素的新列表,则执行此操作:
return list[::-1]
这在Python中称为slicing
,它用于处理集合。
关于不返回的小注释:这些方法实际上并不是return None
。他们不会返回任何价值。但是,评估一个不返回任何值的函数的结果实际上是Python中的None
。
希望这有帮助!
答案 1 :(得分:5)
这是因为list.reverse()
方法就地反转列表 - 不会返回反转列表。请参阅the docs。
答案 2 :(得分:1)
使用reversed
:
return reversed(list)
答案 3 :(得分:1)
通常,如果您将列表反转,则更快的解决方案是
list.reverse()
return list
你可以做到
return reversed(list)
但这通常较慢并且使用更多内存,因为它需要创建一个新对象。
为方便起见,list.reverse()没有返回对象的原因是提醒你它修改了原始列表。