将Python列表作为参数,并通过交换其第一个和最后一个元素来修改列表参数

将Python列表作为参数,并通过交换其第一个和最后一个元素来修改列表参数,python,Python,这可能是一个无限的数字列表,到目前为止,我不知道如何在不知道列表结束的情况下切换列表的第一个和最后一个。 如果列表为(1,2,3,4,5),则输出应为(5,2,3,4,1) 真的卡住了,第一语言,不知道是否有人可以提供一些帮助 def swapFirstAndLast(list): for position in range(0, len(list)): list[position] = list[position] = 我假设你不是指一个无限的

这可能是一个无限的数字列表,到目前为止,我不知道如何在不知道列表结束的情况下切换列表的第一个和最后一个。 如果列表为(1,2,3,4,5),则输出应为(5,2,3,4,1) 真的卡住了,第一语言,不知道是否有人可以提供一些帮助

def swapFirstAndLast(list):
     for position in range(0, len(list)):
         list[position] = 
         list[position] =

我假设你不是指一个无限的数字列表,它不适合记忆,而是一个任意大小的列表。在Python中,您总是知道列表的最后一个位置。它将始终是列表的长度减去一:

my_list[len(my_list) - 1]
Python
list
对象还方便地支持负索引,因此上述内容可以缩短为:

my_list[-1]
因此,要交换第一个和最后一个元素,只需执行以下操作:

my_list[0], my_list[-1] = my_list[-1], my_list[0]
注意,以上是python的一个很好的小功能,通常在语言中,您被迫使用临时变量交换元素:

temp = my_list[0]
my_list[0] = my_list[-1]
my_list[-1] = temp
工作原理如下

>>> L1
[1, 2, 3]
>>> swap_first_and_last(L1)
>>> L1
[3, 2, 1]
>>>

如果它是一个无限的数字列表,那么最后一个元素在计算上是不可访问的,即没有最后一个元素。我认为这个假设有点模棱两可。避免使用名称列表,因为
list()
是Python内置的用于创建列表对象的工具。如果
list
=
[1]
@giantslovedatehmetal,会发生什么情况?您会返回什么?似乎返回
None
在这里是合理的。耶,不,这是合法的。)列表是可变的,当作为参数传递时,我实际上是在更改原始列表,不需要
list\u b=func(list\u a)
<代码>函数(列表a)会产生副作用。但是,为了可读性(或安全性),避免隐式操作也是有意义的。是的,我只是习惯于返回函数。我可以指出的是,您的函数名不符合pep8约定:P
swap_first_和_last
您是对的,实际上甚至没有注意到,只是从问题:)中复制粘贴了所有内容,我正在编辑它。
>>> L1
[1, 2, 3]
>>> swap_first_and_last(L1)
>>> L1
[3, 2, 1]
>>>