Trong Python sử dụng một vòng lặp và trao đổi các mục thứ nhất và cuối cùng, thứ hai và mục trước mục cuối cùng, v.v. cho đến khi danh sách đã cho được đảo ngược.
Bạn cũng có thể sử dụng ký hiệu đệ quy hoặc cắt lát để đảo ngược danh sách.
Mã ví dụ đơn giản.
Phương pháp hoán đổi
list1 = [1, 2, 3, 4, 5]
L = len[list1]
for i in range[int[L / 2]]:
n = list1[i]
list1[i] = list1[L - i - 1]
list1[L - i - 1] = n
print[list1]
Đầu ra::
Hàm đệ quy
list1 = [1, 2, 3, 4, 5]
def reverse_fun[numbers]:
if len[numbers] == 1:
return numbers
# Otherwise
return reverse_fun[numbers[1:]] + numbers[0:1]
print[reverse_fun[list1]]
Ký hiệu sice
list1 = ['A', 'B', 'C', 'D']
def reverse[data_list]:
return data_list[::-1]
print[reverse[list1]]
Đầu ra: [‘D,’ C, ‘B,‘ A,]: [‘D’, ‘C’, ‘B’, ‘A’]
Tạo một phương thức đảo ngược cho danh sách Python từ đầu
def reverse_fun[data_list]:
length = len[data_list]
s = length
new_list = [None] * length
for item in data_list:
s = s - 1
new_list[s] = item
return new_list
list1 = [1, 2, 3, 4, 5]
print[reverse_fun[list1]]
Đầu ra: [5, 4, 3, 2, 1]: [5, 4, 3, 2, 1]
Hãy bình luận nếu bạn có câu hỏi và đề xuất về hướng dẫn danh sách Python này.
Lưu ý: IDE: & NBSP; Pycharm & NBSP; 2021.3.3 [Phiên bản cộng đồng] IDE: PyCharm 2021.3.3 [Community Edition]
Windows 10
Python 3.10.1
Tất cả & nbsp; ví dụ python & nbsp; là trong & nbsp; Python & nbsp; 3, vì vậy có thể khác với các phiên bản Python 2 hoặc nâng cấp. Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.
Bằng cấp về Khoa học máy tính và Kỹ sư: Nhà phát triển ứng dụng và có nhiều ngôn ngữ lập trình kinh nghiệm. Sự nhiệt tình cho công nghệ và thích học kỹ thuật.
Giới thiệu
Trong bài đăng mã Python này, chúng tôi sẽ triển khai chức năng đảo ngược danh sách từ vết xước mà không sử dụng bất kỳ chức năng tích hợp nào.
Hãy cho chúng tôi xem cách…
Giải pháp lặp
Chúng ta có thể sử dụng một vòng lặp để trao đổi các mục thứ nhất và cuối cùng, thứ hai và mục trước mục cuối cùng và cứ thế cho đến khi danh sách được đảo ngược tại chỗ. Số lần lặp cần thiết là một nửa kích thước danh sách. Nếu danh sách có một số lượng các mục lẻ thì mục giữa sẽ ở lại vị trí của nó.
Đây là một ví dụ mã python để làm điều đó
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # Ví dụ Danh sách đầu vào của các số numbers=[0,1,2,3,4,5,6,7,8,9]=[0,1,2,3,4,5,6,7,8, 9] # Nhận độ dài danh sách L=len[numbers]=len[numbers] # Tôi đi từ 0 đến giữa foriinrange[int[L/2]]:iinrange[int[L/2]]: & nbsp; & nbsp; & nbsp; & nbsp;# hoán đổi từng số với số trong# Swap each number with the number in & nbsp; & nbsp; & nbsp; & nbsp;# vị trí gương ví dụ đầu tiên# the mirror position for example first & nbsp; & nbsp; & nbsp; & nbsp;# và cuối cùng# and last n=numbers[i]n=numbers[i] numbers[i]=numbers[L-i-1]numbers[i]= numbers[L-i-1] numbers[L-i-1]=nnumbers[L-i-1]=n # Tại thời điểm này, danh sách phải được đảo ngược print[numbers][numbers] |
Giải pháp đệ quy
Chúng ta có thể viết một hàm đảo ngược đệ quy để đảo ngược một danh sách. Điều kiện dừng xảy ra khi danh sách là một mục có độ dài trong trường hợp như vậy, chúng tôi chỉ trả lại danh sách đó nếu không chúng tôi trả về Danh sách Concatenation được xây dựng từ mục đầu tiên và mặt trái đệ quy của phần còn lại của các mục. Ví dụ: đảo ngược [[1, 2, 3, 4]] = đảo ngược [[2, 3, 4]] + [1].
Dưới đây là một ví dụ thực hiện
# Ví dụ Danh sách đầu vào của các số numbers=[0,1,2,3,4,5,6,7,8,9]=[0,1,2,3,4,5,6,7,8, 9] # Nhận độ dài danh sách defReverse[numbers]:Reverse[numbers]: # Tôi đi từ 0 đến giữa# Base case when the list is only one item if[len[numbers]==1]:if [len[numbers]==1]: & nbsp; & nbsp; & nbsp; & nbsp;# hoán đổi từng số với số trongreturnnumbers & nbsp; & nbsp; & nbsp; & nbsp;# vị trí gương ví dụ đầu tiên# Otherwise returnReverse[numbers[1:]]+numbers[0:1]return Reverse[numbers[1:]]+numbers[0:1] # Chức năng kiểm tra print[Reverse[numbers]][Reverse[numbers]] |
Tôi hy vọng bài viết này là hữu ích. Cảm ơn đã ghé thăm
về tác giả
Mohammed AbualrobKỹ sư phần mềm @ Cisco