Python 程序反转列表

编写一个 Python 程序来反转列表项或反转列表元素,并附带实际示例。在此编程语言中,有一个内置的列表方法称为 reverse(),我们可以使用它来获得结果。

此编程语言中的列表反转方法语法如下:

list_name.reverse()

Python 列表 reverse() 方法

此函数反转给定列表的项。下面的代码反转整数列表中的元素。

rList = [10, 190, 120, 180, 120, 105]

rList.reverse()

print(rList)
[105, 120, 180, 120, 190, 10]

在此示例中,我们声明了一个字符串列表。接下来,我们在其上使用了反转函数。请参阅 列表方法 文章,以了解有关 Python 中所有这些内容的说明。

FruitRevList = ['Orange', 'Banana', 'Kiwi', 'Watermelon', 'Grape', 'Blackberry']

FruitRevList.reverse()

print(FruitRevList)
['Blackberry', 'Grape', 'Watermelon', 'Kiwi', 'Banana', 'Orange']

列表 reverse() 函数示例

此示例方法反转列表的项。

Fruits = ['Apple', 'Orange', 'Banana', 'Kiwi', 'Grape', 'Blackberry']
numbers = [9, 4, -5, 0, 22, -1, 2, 14]

print("Original : ", Fruits)
print("Original number : ", numbers)

Fruits.reverse()
print("\nReverse : ", Fruits)

numbers.reverse()
print("New Reverse Number : ", numbers)
Original :  ['Apple', 'Orange', 'Banana', 'Kiwi', 'Grape', 'Blackberry']
Original number :  [9, 4, -5, 0, 22, -1, 2, 14]

Reverse :  ['Blackberry', 'Grape', 'Kiwi', 'Banana', 'Orange', 'Apple']
New Reverse Number :  [14, 2, -1, 22, 0, -5, 4, 9]

我将对混合项使用此方法。

MixedRevList = ['apple',  1, 5, 'Kiwi', 'Mango']

MixedRevList.reverse()

print(MixedRevList)
['Mango', 'Kiwi', 5, 1, 'apple']

这次,我们将其用于嵌套列表。

MixedRevList = [[171, 222], [32, 13], [14, 15], [99, 76]]

MixedRevList.reverse()

print(MixedRevList)
[[99, 76], [14, 15], [32, 13], [171, 222]]

如何反转用户输入的整数列表项?

程序 与第一个示例相同。但是,我们允许用户输入其长度。接下来,我们使用 For 循环 将数字添加到其中。

intRevList = []

number = int(input("Please enter the Total Number of List Elements: "))
for i in range(1, number + 1):
    value = int(input("Please enter the Value of %d Element : " %i))
    intRevList.append(value)

print("Before is : ", intRevList)
intRevList.reverse()
print("After is  : ", intRevList)
Reverse List Function Example

此程序允许用户输入自己的字符串或单词,然后反转它们。

strRevList = []

number = int(input("Please enter the Total Number of Elements: "))
for i in range(1, number + 1):
    item = input("Please enter the Value of %d Element : " %i)
    strRevList.append(item)

print("Before. : ", strRevList)
strRevList.reverse()
print("After   : ", strRevList)
Please enter the Total Number of Elements: 4
Please enter the Value of 1 Element : Apple
Please enter the Value of 2 Element : Kiwi
Please enter the Value of 3 Element : Orange
Please enter the Value of 4 Element : Banana
Before :  ['Apple', 'Kiwi', 'Orange', 'Banana']
After  :  ['Banana', 'Orange', 'Kiwi', 'Apple']

它允许用户输入列表的长度。接下来,我们使用 For 循环和 append 函数将数字添加到列表中。然后,我们使用内置的列表 reverse() 方法来反转列表项。

NumList = []

Number = int(input("Please enter the Total Number of List Elements: "))
for i in range(1, Number + 1):
    value = int(input("Please enter the Value of %d Element : " %i))
    NumList.append(value)

NumList.reverse()
print("\nThe Result of a Reverse List =  ", NumList)
Python Program to Reverse List Elements

提示:函数 用于反转列表中的元素。

使用 reversed 函数

默认情况下,reversed() 函数返回迭代器对象,因此我们必须将其转换回列表。

nums = [11, 25, 90, 70, 50, 60]

rev = list(reversed(nums))

print(rev)
[60, 50, 70, 90, 25, 11]

使用 map 和 lambda 函数反转列表

numLst = [10, 20, 30, 40, 50, 60]

revLst = list(map(lambda x: numLst[-x], range(1, len(numLst) + 1)))
print(revLst)
[60, 50, 40, 30, 20, 10]

使用切片技术

这是反转列表元素的最佳方法之一。

nums = [10, 20, 30, 40, 50, 60]

rev = nums[::-1]

print(rev)
[60, 50, 40, 30, 20, 10]

Python 程序使用 for 循环反转列表项

我们可以称之为上述切片技术的扩展。此示例代码使用 for 循环和 range 函数从后向前迭代列表元素,并将它们添加到新列表中。

nums = [10, 20, 90, 40, 50, 60]
rev = []

for i in range(len(nums) - 1, -1, -1):
    rev.append(nums[i])

print(rev)
[60, 50, 40, 90, 20, 10]

我们也可以使用 for 循环和 list insert() 函数来反转元素。

nums = [10, 20, 30, 40, 50, 60]
rev = []

for i in nums:
    rev.insert(0,  i)

print(rev)
[60, 50, 40, 30, 20, 10]

使用 while 循环反转列表项

在此 Python 程序 中,我们使用了 While 循环。在 while 循环中,我们借助第三个变量进行了交换。我建议您参考 交换两个数字 文章来理解 Python 的逻辑。

NumList = []

Number = int(input("Please enter the Total Numbers : "))
for i in range(1, Number + 1):
    value = int(input("%d Element : " %i))
    NumList.append(value)

j = Number - 1
i = 0

while(i < j):
    temp = NumList[i]
    NumList[i] = NumList[j]
    NumList[j] = temp
    i = i + 1
    j = j - 1
    
print("\nThe Result =  ", NumList)
Please enter the Total Numbers : 3
1 Element : 1
2 Element : 2
3 Element : 3

The Result =   [3, 2, 1]

此示例也使用了 while 循环,但这次我们使用了 list pop() 方法来反转项。pop() 函数返回最后一个值,append() 方法将该数字添加到新列表中。

nums = [10, 20, 30, 40, 50, 60]
rev = []

while nums:
    rev.append(nums.pop())

print(rev)
[60, 50, 40, 30, 20, 10]

使用函数反转列表元素

这个 列表 项程序与上面相同。但是,我们使用 函数 分离了逻辑。

def reverseList(NumList, num):
    j = Number - 1
    i = 0
    while(i < j):
        temp = NumList[i]
        NumList[i] = NumList[j]
        NumList[j] = temp
        i = i + 1
        j = j - 1
    
NumList = []
Number = int(input("Please enter the Total Number of Elements: "))
for i in range(1, Number + 1):
    value = int(input("%d Element : " %i))
    NumList.append(value)
    
reverseList(NumList, Number)
print("\nThe Result =  ", NumList)
Please enter the Total Number of Elements: 5
1 Element : 10
2 Element : 20
3 Element : 30
4 Element : 40
5 Element : 50

The Result =   [50, 40, 30, 20, 10]

Python 程序使用递归反转列表元素

此程序通过递归调用函数来反转列表项。

def reverseList(NumList, i, j):
    if(i < j):
        temp = NumList[i]
        NumList[i] = NumList[j]
        NumList[j] = temp
        reverse_list(NumList, i + 1, j-1)
    
NumList = []
Number = int(input("Please enter the Total Number of Elements: "))
for i in range(1, Number + 1):
    value = int(input("%d Element : " %i))
    NumList.append(value)
    
reverseList(NumList, 0, Number - 1)
print("\nThe Result =  ", NumList)
Please enter the Total Number of Elements: 6
1 Element : 12
2 Element : 13
3 Element : 14
4 Element : 15
5 Element : 16
6 Element : 27

The Result =   [27, 16, 15, 14, 13, 12]

下面显示了使用递归反转列表项的更好方法。

def reverseList(n):
    if len(n) == 0:
        return []
    else:
        return [n[-1]] + reverseList(n[:-1])

nums = [25, 77, 90, 80, 150, 60, 180]
rev = reverseList(nums)
print(rev)
[180, 60, 150, 80, 90, 77, 25]