我正在尝试列出一个列表,仅反转中间元素,而不是第一个和最后一个。我一直遇到一个nonetype错误,不明白为什么。
def reverse_middle(nums):
a = nums[0]
b = nums[-1]
interior = nums
interior.pop()
interior.pop(0)
final = interior.reverse()
final.insert(0, a)
final.append(b)
return final
答案 0 :(得分:1)
list
的reverse方法会反转列表,但不会返回已反转的列表,而会返回None
:就地进行反转。
def reverse_middle(nums):
a = nums[0]
b = nums[-1]
interior = nums
interior.pop()
interior.pop(0)
interior.reverse()
final = interior
final.insert(0, a)
final.append(b)
return final
要获得更简洁的代码,请使用以下代码:
def reverse_middle(nums):
a = nums[0]
b = nums[-1]
interior = nums[1:-1]
interior.reverse()
final = [a] + interior + [b]
return final
更简洁
def reverse_middle(nums):
interior = nums[1:-1]
interior.reverse()
return [nums[0]] + interior + [nums[-1]]
答案 1 :(得分:0)
interior.reverse()
就地执行操作(即内部颠倒了),并且不返回任何内容至final
。
这就是为什么,最终是“无”。没有对象没有称为insert
的方法。