Python 程序交换列表的第一个和最后一个元素

在本文中,我们将通过示例介绍如何编写一个Python程序来交换列表中的第一个和最后一个元素。有多种选项可以交换列表中的第一个和最后一个项,包括使用临时变量、赋值运算符、循环、pop 函数等。

Python 程序使用临时变量交换列表的第一个和最后一个元素

在下面的程序中,我们声明了一个包含五个元素的整数列表。我们的任务是替换、交换或互换列表中的第一个和最后一个元素(10 和 999 的位置)。

程序中,首先,我们使用len()函数来查找列表的总项数。接下来,将第一个值赋给临时变量,然后将临时变量的值赋给第一个元素。然后,将临时变量中的值赋给最后一个元素。

a = [10, 50, 100, 200, 999]
print("Before: ", a)

size = len(a)

#swap
temp = a[0]
a[0] = a[size - 1]
a[size - 1] = temp

print("After Swap:", a)
Before:     [10, 50, 100, 200, 999]
After Swap: [999, 50, 100, 200, 10]

我们都知道,列表项也可以使用负索引访问,其中负一(-1)是最后一个索引位置。因此,在程序中,我们没有使用 len() 来获取最后一个项,而是使用了 -1 来获取最后一个元素。

这里,

temp = a[-1] = 555

a[-1] = a[0] = 111

a[0] = temp = 555

所以,最终的列表将是 a = [555, 50, 75, 125, 375, 111]。

a = [111, 50, 75, 125, 375, 555]
print("Before: ", a)

#swap
temp = a[-1]
a[-1] = a[0]
a[0] = temp

print("After Swap:", a)
Python Program to Interchange First and Last elements in a List

使用赋值运算符

在 Python 中,我们可以使用赋值运算符在一行中为变量赋多个值。在这里,在这个 Python 程序中,我们使用了赋值运算符的简写方法来交换列表的第一个和最后一个元素。

a = [10, 50, 100, 150, 200, 999]
print("Before: ", a)

a[0], a[-1] = a[-1], a[0]

print("After Swap:", a)
Before:     [10, 50, 100, 150, 200, 999]
After Swap: [999, 50, 100, 150, 200, 10]

Python 程序使用 pop、insert 和 append 函数交换列表的第一个和最后一个元素

在这个程序中,我们定义了一个接受列表作为参数值的函数。在函数中,pop() 函数将删除指定索引位置的项。

这里,a.pop(0) 删除起始项,并将其赋给第一个变量。同样,我们将最后一个值赋给最后一个变量。由于 pop() 函数删除了第一个和最后一个项,剩余的列表将是 [50, 100, 150, 200]。

在下一行中,insert 函数将在索引位置 0(即第一个位置)处添加最后一个值。接下来,append 函数将在末尾或最后一个位置添加列表项。

def swapListItems(a):
first = a.pop(0)
last = a.pop(-1)
a.insert(0, last)
a.append(first)
return a


num = [10, 50, 100, 150, 200, 999]
print("Before: ", num)
print("After Swap:", swapListItems(num))
Before:     [10, 50, 100, 150, 200, 999]
After Swap: [999, 50, 100, 150, 200, 10]

使用列表切片技术

这个 Python 程序使用列表切片技术来交换整数列表中的第一个和最后一个元素。为了更好地理解,我们在单独的打印语句中打印了字符串连接的每个切片。

首先,它检查列表是否至少有两个值。接下来,我们使用切片技术提取第一个和最后一个项。接下来,a[1:-1] 将从第二个位置到倒数第二个位置提取最后一个项。然后,将这三个切片相加得到最终结果。

a = [25, 50, 100, 150, 200, 400]
print("Before: ", a)

if len(a) >= 2:
a = a[-1:] + a[1:-1] + a[:1]

print("After Swap:", a)

print("a[-1:] = ", a[-1:])
print("a[1: -1] = ", a[1: -1])
print("a[:1] = ", a[:1])
Before:     [25, 50, 100, 150, 200, 400]
After Swap: [400, 50, 100, 150, 200, 25]
a[-1:] =  [25]
a[1: -1] =  [50, 100, 150, 200]
a[:1] =  [400]

Python 程序使用 * 运算符交换列表的第一个和最后一个元素

在这里,列表项上的 * 运算符会解包可迭代对象。所以,(a, *b, c = num) 意味着第一个列表项将被赋给 a,最后一个元素将被赋给 c。剩余的列表项将被赋给 *b。接下来,我们通过交换第一个和最后一个位置的项来重新赋值。为了让您理解,我们在 swapListItems 函数中添加了三个打印语句。

def swapListItems(num):
a, *b, c = num
print(a)
print(*b)
print(c)
num = [c, *b, a]
return num


numList = [25, 50, 100, 150, 200, 400]
print("Before: ", numList)

print("After:", swapListItems(numList))
Before:     [25, 50, 100, 150, 200, 400]
25
50 100 150 200
400
After: [400, 50, 100, 150, 200, 25]