返回反转后的列表

-1 投票
2 回答
911 浏览
提问于 2025-04-29 14:23

我有这样一个问题:

写一个叫做 reverse3(nums) 的函数,它接收一个长度为3的整数列表 nums,并返回一个新列表,里面的元素顺序是反过来的,也就是说 [1, 2, 3] 变成 [3, 2, 1]。

我这样解决的:

def reverse3(nums):
    return [nums[2]] + [nums[1]] + [nums[0]]

不过,答案其实很简单。我的主要问题是,当我不知道 nums 里有多少个整数时,怎么把 nums 反转呢?

我有这个方法:

nums[::-1] 这确实能返回反转后的 nums,但我想找一种不同的方法。可能是用循环?

我试过这个:

def reverse3(nums):
    return reversed(nums)

结果是:<list_reverseiterator object at 0x10151ff90> #这是个什么东西?

暂无标签

2 个回答

0

列表里有一个内置的反转功能

list.reverse()

所以你可以使用这个功能

nums.reverse()

不过,如果你想自己写一个反转的功能,你就需要把列表倒着遍历,然后放到另一个列表里。

大概是这样的-

def revList(nums)
   i = len(mums) -1
   while i >= 0:
      revNums[i] = nums.pop()
      i = i - 1
   return(revNums)
0

reversed 是一个可以返回迭代器的函数。如果你想得到一个列表对象,可以使用list

>>> def reverse3(nums):
...     return list(reversed(nums))
... 
>>> reverse3([4,5,6])
[6, 5, 4]

撰写回答