-1

我有这个问题:

编写一个函数 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>#location?

4

2 回答 2

0

List has a built in reverse function

list.reverse()

so you could use

nums.reverse()

However, if you want to write your own function you would need to do a reverse iteration to another list.

Something like-

def revList(nums)
   i = len(mums) -1
   while i >= 0:
      revNums[i] = nums.pop()
      i = i - 1
   return(revNums)
于 2014-10-25T06:40:32.620 回答
0

reversed返回一个迭代器。如果要获取列表对象,请使用list

>>> def reverse3(nums):
...     return list(reversed(nums))
... 
>>> reverse3([4,5,6])
[6, 5, 4]
于 2014-10-25T06:58:08.977 回答