Hướng dẫn range reverse python - trăn đảo ngược phạm vi

Tìm hiểu làm thế nào để đảo ngược một phạm vi trong Python và tìm hiểu thêm về phạm vi (), các hàm đảo ngược () và sắp xếp ().

Đầu hành trình Python của bạn, bạn sẽ bắt đầu làm việc với các chuỗi và phạm vi. Tại một số điểm, bạn có thể tự hỏi làm thế nào tôi có thể nhận được các giá trị này theo thứ tự ngược lại? Nếu bạn nghĩ về nó, chúng tôi đảo ngược phạm vi liên tục: khi chúng tôi sắp xếp các tệp trong máy tính của chúng tôi từ giảm dần đến thứ tự giảm dần, chúng tôi đảo ngược một cách hiệu quả thứ tự ban đầu của chúng.

Hóa ra, có nhiều cách đảo ngược một phạm vi trong Python. Trong bài viết này, chúng tôi sẽ tìm hiểu một vài lựa chọn khác nhau. Chúng tôi sẽ bắt đầu bằng cách giới thiệu chức năng

r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
1 và làm việc theo cách của chúng tôi thông qua một số ví dụ. Sau khi hoàn thành bài viết này, hãy chắc chắn kiểm tra các thuật toán tích hợp của chúng tôi trong khóa học Python, bao gồm rất nhiều bài tập cho các chức năng mà bạn sẽ thấy ở đây.

Bắt đầu nào!

Cách sử dụng cơ bản của hàm phạm vi ()

Hãy bắt đầu với những điều cơ bản: Chức năng Python từ

r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
1 được sử dụng để tạo ra một chuỗi các số ngày càng tăng (hoặc giảm số lượng, như chúng ta sẽ thấy bên dưới). Điều này nghe có vẻ không thú vị lúc đầu, nhưng
r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
1 rất hữu ích trong nhiều bối cảnh - một số trong đó chúng tôi sẽ khám phá sau trong bài viết này.

Hãy để tạo ra một đối tượng

r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
1 trong Python:

r = range(10)
print(r)

# output:
# range(0, 10)

Nhưng chờ đã, những con số ở đâu? Một đối tượng phạm vi không thực sự hiển thị các yếu tố của nó cho bạn cho đến khi bạn yêu cầu rõ ràng chúng. Vì vậy, để truy cập các số, bạn sẽ cần biến phạm vi thành một chuỗi. Bạn có thể sử dụng các hàm

r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
5 hoặc
r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
6 cho việc này (và bạn có thể tìm hiểu thêm về danh sách và bộ dữ liệu trong bài viết này):

r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]

Một cách khác để truy cập các số trong phạm vi là lặp lại nó trong một vòng lặp. Nếu tên là For For Loop, làm bạn bối rối, chúng tôi khuyên bạn nên kiểm tra chương trình học của chúng tôi với bản nhạc Python, đi qua - và vượt xa - tất cả các cú pháp cơ bản của Python.

Dưới đây là một ví dụ đơn giản về việc sử dụng hàm phạm vi () trong một vòng lặp:

for n in range(5):
    print(n)

# output:
# 0
# 1
# 2
# 3
# 4

Mặc dù sự đơn giản của các ví dụ này, chúng tôi đã có thể phát hiện một số thuộc tính của hàm

r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
1. Ví dụ: cung cấp một số
r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
8,
r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
1 tạo ra các số nguyên từ
for n in range(5):
    print(n)

# output:
# 0
# 1
# 2
# 3
# 4
0 đến
for n in range(5):
    print(n)

# output:
# 0
# 1
# 2
# 3
# 4
1. Trong ví dụ trên, chúng tôi đã chuyển 5 cho hàm
r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
1, do đó số cuối cùng được in là 4 (vì 5 - 1 = 4).

Đôi khi, bạn có thể không quan tâm đến các con số trong phạm vi. Hàm

r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
1 có thể được sử dụng trong các vòng
for n in range(5):
    print(n)

# output:
# 0
# 1
# 2
# 3
# 4
4 chỉ đơn giản là một cách để thực hiện một hành động nhiều lần:

for n in range(10):  # repeat the code below 10 times
    print("Hello, World!")

# output: 
# "Hello, World!"
# "Hello, World!"
# ...

Các tham số của hàm python ()

Cho đến bây giờ, chúng tôi chỉ đơn giản chuyển một số duy nhất cho

r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
1, nhưng chức năng này thực sự chấp nhận tối đa ba đối số: bắt đầu, dừng lại và bước.start, stop, and step.

  • Bắt đầu đại diện cho giá trị ban đầu trong phạm vi. Theo mặc định, giá trị này là
    for n in range(5):
        print(n)
    
    # output:
    # 0
    # 1
    # 2
    # 3
    # 4
    
    0.start represents the initial value in the range. By default, this value is
    for n in range(5):
        print(n)
    
    # output:
    # 0
    # 1
    # 2
    # 3
    # 4
    
    0.
  • Điểm dừng đại diện cho điểm cuối của phạm vi. Giá trị này không có mặc định (nghĩa là nó phải luôn được cung cấp). Lưu ý rằng phạm vi đi lên giá trị dừng, nhưng không bao gồm nó. Một phạm vi với điểm dừng của
    for n in range(5):
        print(n)
    
    # output:
    # 0
    # 1
    # 2
    # 3
    # 4
    
    7 sẽ có số 6 là phần tử cuối cùng của nó.stop represents the end point of the range. This value has no default (i.e. it must always be provided). Note that the range goes up to the stop value, but does not include it. A range with a stop of
    for n in range(5):
        print(n)
    
    # output:
    # 0
    # 1
    # 2
    # 3
    # 4
    
    7 will have the number 6 as its last element.
  • Bước đại diện cho số lượng các phần tử để bỏ qua trên mỗi lần lặp. Giá trị mặc định của nó là
    for n in range(5):
        print(n)
    
    # output:
    # 0
    # 1
    # 2
    # 3
    # 4
    
    8, có nghĩa là không có giá trị nào được bỏ qua. Giá trị bước của 3 có nghĩa là phạm vi bao gồm một phần tử cho mỗi 3 số (ví dụ: 0, 3, 6, 9, 9).step represents the number of elements to “skip” at every iteration. Its default value is
    for n in range(5):
        print(n)
    
    # output:
    # 0
    # 1
    # 2
    # 3
    # 4
    
    8, meaning that no values are skipped. A step value of 3 means that the range includes one element for every 3 numbers (e.g. 0, 3, 6, 9, …).

Nếu bạn chuyển hai đối số cho hàm phạm vi, chúng được hiểu là sự khởi đầu và điểm dừng (theo thứ tự cụ thể này). Để cung cấp một đối số bước, bạn cũng cần cung cấp sự khởi đầu và dừng lại.start and the stop (in this specific order). To provide a step argument, you need to provide the start and stop as well.

Dưới đây là một số ví dụ về các tham số bắt đầu, dừng và bước trong hành động:

# start = 0 (default), stop = 3, step = 1 (default)
r1 = range(3)
print(list(r1))

# output:
# [0, 1, 2]


# start = 2, stop = 6, step = 1 (default)
r2 = range(2, 6)
print(list(r2))

# output: 
# [2, 3, 4, 5]

r3 = range(4, 10, 2)  # start = 4, stop = 10, step = 2
print(list(r3))

# output:
# [4, 6, 8]

Như bạn có thể thấy, có nhiều cách để xác định hầu như bất kỳ phạm vi số nào bạn có thể muốn. Nhưng nếu bạn cần những giá trị này theo thứ tự ngược lại thì sao?

Hàm đảo ngược ()

Hàm

for n in range(5):
    print(n)

# output:
# 0
# 1
# 2
# 3
# 4
9 được sử dụng để tốt, đảo ngược một chuỗi! Bạn chỉ cần cung cấp bất kỳ chuỗi nào cho
for n in range(5):
    print(n)

# output:
# 0
# 1
# 2
# 3
# 4
9 và nó sẽ lưu trữ các yếu tố của nó theo thứ tự ngược lại. Ở đây, nó trông như thế nào:

my_list = [1, 5, 10, 2]
for n in reversed(my_list):
    print(n)

# output:
# 2
# 10
# 5
# 1

Như bạn có thể thấy, các yếu tố trong

for n in range(10):  # repeat the code below 10 times
    print("Hello, World!")

# output: 
# "Hello, World!"
# "Hello, World!"
# ...
1 đã được in theo thứ tự ngược lại. Mát mẻ!

Lưu ý rằng, giống như với chức năng

r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
1, bạn cần lặp lại các đối tượng đảo ngược - hoặc sử dụng các hàm
r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
5 hoặc
r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
6 - để thực sự nhận được các giá trị của chúng:

my_list = [1, 5, 10, 2]
my_reversed_object = reversed(my_list)
print(my_reversed_object)  # not very useful!

# output:
# 

values = list(my_reversed_object)
print(values)  # here are the values!

# output:
# [2, 10, 5, 1]

Đảo ngược một phạm vi bằng phạm vi () và đảo ngược ()

Bạn có thể đã thấy điều này sắp tới, nhưng bạn có thể kết hợp các hàm

r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
1 và
for n in range(5):
    print(n)

# output:
# 0
# 1
# 2
# 3
# 4
9 để đảo ngược một phạm vi trong Python. Nó hoạt động giống như bạn mong đợi:

for n in reversed(range(5)):
    print(n)

# output:
# 4
# 3 
# 2 
# 1 
# 0

Trong ví dụ trên, ________ 11 & nbsp; Có khởi đầu mặc định là

for n in range(5):
    print(n)

# output:
# 0
# 1
# 2
# 3
# 4
0 và dừng
for n in range(10):  # repeat the code below 10 times
    print("Hello, World!")

# output: 
# "Hello, World!"
# "Hello, World!"
# ...
9, do đó, nó đi từ
for n in range(5):
    print(n)

# output:
# 0
# 1
# 2
# 3
# 4
0 đến
# start = 0 (default), stop = 3, step = 1 (default)
r1 = range(3)
print(list(r1))

# output:
# [0, 1, 2]


# start = 2, stop = 6, step = 1 (default)
r2 = range(2, 6)
print(list(r2))

# output: 
# [2, 3, 4, 5]

r3 = range(4, 10, 2)  # start = 4, stop = 10, step = 2
print(list(r3))

# output:
# [4, 6, 8]
1. Nhưng vì nó được bọc trong một cuộc gọi chức năng
for n in range(5):
    print(n)

# output:
# 0
# 1
# 2
# 3
# 4
9, các phần tử được in theo thứ tự ngược lại. Nói tóm lại, đó là một cách để đảo ngược một phạm vi trong Python!

Đảo ngược một phạm vi bằng cách sử dụng bước âm

Mặc dù sử dụng

for n in range(5):
    print(n)

# output:
# 0
# 1
# 2
# 3
# 4
9 là một trong những cách dễ nhất để đảo ngược một phạm vi trong Python, nhưng nó không phải là cách duy nhất. Chẳng hạn, bạn cũng có thể chuyển một đối số bước tiêu cực vào hàm
r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
1:

for n in range(5, 0, -1):
    print(n)

# output:
# 5
# 4
# 3
# 2
# 1

Xem làm thế nào nó hoạt động? Phạm vi đi từ

for n in range(10):  # repeat the code below 10 times
    print("Hello, World!")

# output: 
# "Hello, World!"
# "Hello, World!"
# ...
9 (bắt đầu) lên đến
for n in range(5):
    print(n)

# output:
# 0
# 1
# 2
# 3
# 4
0 (điểm dừng), nhưng với bước
# start = 0 (default), stop = 3, step = 1 (default)
r1 = range(3)
print(list(r1))

# output:
# [0, 1, 2]


# start = 2, stop = 6, step = 1 (default)
r2 = range(2, 6)
print(list(r2))

# output: 
# [2, 3, 4, 5]

r3 = range(4, 10, 2)  # start = 4, stop = 10, step = 2
print(list(r3))

# output:
# [4, 6, 8]
7, có nghĩa là các số giảm.

Lúc đầu, có thể hơi khó khăn khi quấn đầu bạn xung quanh bước tiêu cực. Nhiều người mong đợi giá trị bắt đầu luôn luôn ít hơn điểm dừng. Nhưng vì chúng tôi xử lý các bước tiêu cực, chúng tôi muốn bắt đầu với một con số lớn hơn giá trị mà chúng tôi sẽ dừng lại. Khi nghi ngờ, hãy luôn nhớ: Nếu bạn thấy ba đối số trong một cuộc gọi chức năng

r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
1, họ luôn luôn là khởi đầu, điểm dừng và bước, theo thứ tự chính xác này!the start, the stop, and the step, in this exact order!

Bạn cũng có thể sử dụng các giá trị khác với

# start = 0 (default), stop = 3, step = 1 (default)
r1 = range(3)
print(list(r1))

# output:
# [0, 1, 2]


# start = 2, stop = 6, step = 1 (default)
r2 = range(2, 6)
print(list(r2))

# output: 
# [2, 3, 4, 5]

r3 = range(4, 10, 2)  # start = 4, stop = 10, step = 2
print(list(r3))

# output:
# [4, 6, 8]
7 cho bước âm. Điều này làm cho phạm vi bỏ qua một lượng số nhất định trong mỗi lần lặp, giống như với các bước tích cực. Trong ví dụ dưới đây, chúng tôi nhảy xuống 10 giá trị với mỗi lần lặp:

for n in range(100, 10, -10):
    print(n)

# output:
# 100
# 90
# 80
# ...

Đảo ngược một phạm vi với hàm được sắp xếp ()

Như một phần thưởng, ở đây, một cách khác để đảo ngược một phạm vi: sử dụng hàm

my_list = [1, 5, 10, 2]
for n in reversed(my_list):
    print(n)

# output:
# 2
# 10
# 5
# 1
0 với tham số
my_list = [1, 5, 10, 2]
for n in reversed(my_list):
    print(n)

# output:
# 2
# 10
# 5
# 1
1. Điều này sẽ sắp xếp một chuỗi theo thứ tự ngược lại. Vì một đối tượng
my_list = [1, 5, 10, 2]
for n in reversed(my_list):
    print(n)

# output:
# 2
# 10
# 5
# 1
2 luôn được sắp xếp theo định nghĩa, điều này có hiệu quả khiến phạm vi của chúng tôi bị đảo ngược. Kiểm tra ví dụ dưới đây:

r = range(4)
my_list = list(r)
print(my_list)

# output:
# [0, 1, 2, 3]
0

Như đã hứa, danh sách kết quả đại diện cho phạm vi ban đầu của

my_list = [1, 5, 10, 2]
for n in reversed(my_list):
    print(n)

# output:
# 2
# 10
# 5
# 1
3 theo thứ tự ngược lại.

Đây chỉ là một mẫu nhỏ của những gì bạn có thể làm với hàm

my_list = [1, 5, 10, 2]
for n in reversed(my_list):
    print(n)

# output:
# 2
# 10
# 5
# 1
0. Bạn thậm chí có thể viết các chức năng sắp xếp tùy chỉnh để đi với nó. Hàm này cũng có mặt trong các thuật toán tích hợp của chúng tôi trong khóa học Python, vì vậy hãy chắc chắn kiểm tra xem bạn có muốn tìm hiểu thêm!

Chúng tôi đã trải qua một số ví dụ về cách đảo ngược một phạm vi trong Python. Có nhiều tùy chọn có sẵn, vì vậy hãy chọn bất kỳ cảm giác nào tốt nhất trong mã của bạn! Và don dừng lại ở đây - nếu bạn muốn tiếp tục học Python, chúng tôi khuyên bạn nên kiểm tra các cấu trúc dữ liệu Python trong khóa học thực tế. Hành trình học tập của bạn chỉ mới bắt đầu!