Thay thế phạm vi trong python

Cắt lát là một kỹ thuật rất phổ biến để phân tích dữ liệu từ một danh sách nhất định trong Python. Nhưng đối với phân tích của chúng tôi, đôi khi chúng tôi cần tạo các lát của danh sách cho một phạm vi giá trị cụ thể. Ví dụ: chúng ta cần in 4 phần tử bằng cách bỏ qua 4 phần tử trong danh sách. Trong bài viết này, chúng ta sẽ thấy khái niệm về cắt phạm vi trong Python

Sử dụng phạm vi [] và len []

Ta tạo một vòng lặp for để duyệt hết chiều dài của danh sách nhưng chỉ chọn những phần tử thỏa mãn phép chia hết. Trong phép chia hết ta kiểm tra giá trị của phần dư cho phần tử thứ k trong danh sách. Nếu phần còn lại lớn hơn hoặc bằng giá trị phạm vi, chúng tôi chấp nhận phần tử nếu không chúng tôi không

Thí dụ

Bản thử trực tiếp

range_slicing = [6,9,11,15,20,24,29,36,39,43,47,52,56,70,73,79]
print["The given list: ",range_slicing]

# Range Value
s = 4
# Using range and len
result = [range_slicing[k] for k in range[len[range_slicing]]
if k % [s * 2] >= s]

print["\nThe list after range slicing: ",result]

Chạy đoạn mã trên cho ta kết quả như sau

The given list: [6, 9, 11, 15, 20, 24, 29, 36, 39, 43, 47, 52, 56, 70, 73, 79]
The list after range slicing: [20, 24, 29, 36, 56, 70, 73, 79]

dùng phép liệt kê

Chúng tôi áp dụng logic tương tự như trong cách tiếp cận trước nhưng thay vì sử dụng phạm vi[] và len[], chúng tôi chỉ cần áp dụng kiểu liệt kê[]. Hãy lưu ý phần tử cuối cùng trong danh sách xuất hiện trong kết quả vì nó thỏa mãn điều kiện chia hết

Trong Python, bạn có thể sử dụng hàm có sẵn để tạo một dãy số từ điểm bắt đầu đến điểm kết thúc

Chẳng hạn, hãy tạo một dãy số từ 0 đến 5 và in chúng ra

numbers = range[0,6]

for number in numbers:
    print[number]

đầu ra

0
1
2
3
4
5

Chú ý số cuối cùng trong cuộc gọi range[] là 6. Điều này có nghĩa là số cuối cùng được bao gồm trong phạm vi thực sự là 5

Trong Python, bạn có thể gọi hàm range[] với một, hai hoặc ba tham số

Dưới đây là một số ví dụ

# Range from 0 to 9
range[10]           # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

# Range from 5 to 9
range[5, 10]        # 5, 6, 7, 8, 9

# Range from 1 to 100 with step size of 10
range[0, 110, 10]   # 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

# Reversed range from 100 to 0 with step size of -10.
range[100, -10, -10]  # 100, 90, 80, 70, 60, 50, 40, 30, 20, 10

Nếu bạn đang tìm kiếm một câu trả lời ngắn gọn, tôi chắc rằng những ví dụ trên sẽ giúp ích cho bạn. Nhưng để thực sự tìm hiểu cách sử dụng hàm range[] trong các tình huống khác nhau, tôi khuyên bạn nên đọc toàn bộ bài viết

Đây là hướng dẫn toàn diện về hàm range[] trong Python. Trong hướng dẫn này, bạn sẽ tìm hiểu kỹ cách sử dụng hàm range[] trong Python

Hàm range[] trong Python

Trong Python, hàm range[] tích hợp tạo ra một chuỗi số bất biến giữa giá trị đầu và cuối

Cú pháp hoàn chỉnh của hàm range[] như sau

range[start, stop, step]

Ở đâu

  • bắt đầu là giới hạn dưới cho phạm vi. Đây là một tham số tùy chọn với giá trị mặc định là 0
  • dừng là giới hạn trên cho phạm vi. Phạm vi bao gồm các số cho đến giá trị này. Lưu ý cách nó không bao giờ bao gồm giá trị dừng trong phạm vi
  • bước là kích thước bước cho phạm vi. Đây là một đối số tùy chọn mặc định là 1. Mỗi số trong phạm vi được tạo bằng cách thêm bước vào giá trị trước đó

Hàm range[] trả về một đối tượng phạm vi. Bạn có thể lặp qua đối tượng phạm vi này bằng vòng lặp for. Cũng có thể chuyển đổi đối tượng phạm vi thành danh sách

Trong Python 3, có ba biến thể cú pháp về cách sử dụng hàm range[]

  1. phạm vi [dừng]
  2. phạm vi [bắt đầu, dừng]
  3. phạm vi [bắt đầu, dừng, bước]

Hãy xem xét từng lựa chọn thay thế này một cách chi tiết hơn

1. phạm vi [bắt đầu]

Cách cơ bản nhất để sử dụng hàm range[] trong Python là chỉ xác định giá trị cuối cho phạm vi

range[stop]

Khi bạn làm điều này, phạm vi sẽ tự động bắt đầu từ 0 và thực hiện các bước có kích thước 1. Nó kết thúc một trước giá trị dừng

Ví dụ: hãy tạo một dãy số từ 0 đến 5

numbers = range[6]

for number in numbers:
    print[number]

đầu ra

0
1
2
3
4
5

Ở đây phạm vi bắt đầu từ 0 vì bạn không chỉ định giá trị bắt đầu. Phạm vi kết thúc ở giá trị 5 thay vì 6 do tính chất độc quyền của hàm phạm vi[]

2. phạm vi [bắt đầu, dừng]

Một cách khác để bạn có thể gọi hàm range[] trong Python là chỉ định cả giá trị bắt đầu và kết thúc. Điều này hữu ích nếu bạn muốn phạm vi bắt đầu từ một giá trị khác 0, trường hợp này thường xảy ra

range[start, stop]

Chẳng hạn, hãy tạo các giá trị từ 5 đến 10

numbers = range[5,11]

for number in numbers:
    print[number]

đầu ra

5
6
7
8
9
10

Lưu ý rằng giá trị đầu 5 được bao gồm trong phạm vi, nhưng giá trị cuối 11 thì không. Điều này có thể gây nhầm lẫn nếu đây là lần đầu tiên bạn sử dụng hàm range[]

3. phạm vi [bắt đầu, dừng, bước]

Tùy chọn thứ ba để gọi hàm range[] bằng cách chỉ định các tham số bắt đầu, dừng và bước

range[start, stop, step]

Tham số bước đặt khoảng thời gian cho phạm vi. Nói cách khác, nó ảnh hưởng đến cách phạm vi được tạo bằng cách thêm một giá trị khác 1 vào số trước đó

Ví dụ: hãy tạo một phạm vi giá trị từ 50 đến 100 bằng cách sử dụng 10 làm kích thước bước

0
1
2
3
4
5
1

đầu ra

0
1
2
3
4
5
2

Hàm range[] Giá trị trả về

Bây giờ bạn đã biết cách sử dụng hàm range[] trong Python, hãy xem xét kỹ hơn về giá trị trả về

Trong Python, hàm range[] trả về một đối tượng phạm vi

Ví dụ: hãy tạo một dãy số và in đối tượng. Hãy cũng in loại phạm vi bằng cách sử dụng hàm type[] tích hợp

0
1
2
3
4
5
3

đầu ra

0
1
2
3
4
5
4

Kết quả in phạm vi không phải là danh sách các số như bạn mong đợi. Thay vào đó, nó là một đối tượng phạm vi. Nói cách khác, hàm range[] trả về một đối tượng phạm vi đặc biệt

Đối tượng phạm vi có thể lặp lại theo bản chất. Điều này có nghĩa là bạn có thể lặp qua nó giống như bất kỳ lần lặp nào khác, chẳng hạn như danh sách. Đây là những gì bạn đã thấy trong các ví dụ trước

Tất nhiên, bạn cũng có thể chuyển đổi đối tượng phạm vi thành một loại có thể lặp lại khác, chẳng hạn như danh sách

Ví dụ: hãy tạo một dãy số và chuyển đổi nó thành một danh sách bằng hàm list[] tích hợp

0
1
2
3
4
5
5

đầu ra

0
1
2
3
4
5
6

Bây giờ kết quả là một danh sách Python thông thường thay vì một đối tượng phạm vi. Vì vậy, nếu bạn cần tạo một phạm vi dưới dạng danh sách, bạn có thể dễ dàng chuyển đối tượng phạm vi thành danh sách

Hãy nhớ rằng đối tượng phạm vi là một đối tượng phạm vi vì lý do hiệu suất. Nếu không cần truyền phạm vi vào danh sách, đừng làm điều đó

Phạm vi đảo ngược trong Python

Trong Python, có thể tạo phạm vi đảo ngược bằng cách chỉ định kích thước bước âm cho lệnh gọi hàm range[]

Ví dụ: hãy tạo một dãy số từ 100 đến 50

0
1
2
3
4
5
7

đầu ra

0
1
2
3
4
5
8

Hãy chắc chắn rằng bạn hiểu lý do tại sao điều này hoạt động

  • Phạm vi bắt đầu từ tham số bắt đầu, nhưng nó dừng một bước trước tham số dừng. Do đó, điểm dừng được đặt thành 40 để bao gồm 50 trong phạm vi
  • Khi bước là -10, phạm vi sẽ có các bước có kích thước -10. Nói cách khác, nó giảm giá trị bắt đầu đi 10 cho đến khi giá trị dừng

Nhưng tại sao bạn cần chỉ định giá trị bước?

  • Như bạn nhớ, phạm vi [100, 40] có nghĩa là bước là 1 [theo mặc định] có nghĩa là phạm vi [100, 40, 1]
  • Điều này khiến Python bối rối khi nó cố gắng tăng từ 100 lên 40 bằng cách thêm 1 vào 100, điều này là không thể
  • Do đó, kết quả là một phạm vi trống
0
1
2
3
4
5
9

đầu ra

# Range from 0 to 9
range[10]           # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

# Range from 5 to 9
range[5, 10]        # 5, 6, 7, 8, 9

# Range from 1 to 100 with step size of 10
range[0, 110, 10]   # 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

# Reversed range from 100 to 0 with step size of -10.
range[100, -10, -10]  # 100, 90, 80, 70, 60, 50, 40, 30, 20, 10
0

Phạm vi phủ định trong Python

Trong Python, bạn có thể sử dụng hàm range[] tích hợp để tạo ra một dãy số âm

Khi nói về phạm vi âm trong Python, bạn có thể tham khảo

  • Phạm vi âm với số lượng tăng dần, nghĩa là một bước tích cực
  • Phạm vi âm với số giảm dần, tức là bước âm

Hãy xem một ví dụ về mỗi

Phạm vi âm với số tăng dần

Ví dụ: hãy tạo một dãy số từ -1 đến -5

# Range from 0 to 9
range[10]           # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

# Range from 5 to 9
range[5, 10]        # 5, 6, 7, 8, 9

# Range from 1 to 100 with step size of 10
range[0, 110, 10]   # 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

# Reversed range from 100 to 0 with step size of -10.
range[100, -10, -10]  # 100, 90, 80, 70, 60, 50, 40, 30, 20, 10
1

đầu ra

# Range from 0 to 9
range[10]           # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

# Range from 5 to 9
range[5, 10]        # 5, 6, 7, 8, 9

# Range from 1 to 100 with step size of 10
range[0, 110, 10]   # 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

# Reversed range from 100 to 0 with step size of -10.
range[100, -10, -10]  # 100, 90, 80, 70, 60, 50, 40, 30, 20, 10
2

Lưu ý cách bạn cần kích thước bước âm để làm cho phạm vi hoạt động. Điều này là do không thể lấy các giá trị nhỏ hơn bằng cách cộng các giá trị dương

Nói cách khác, nếu bạn không chỉ định một bước phủ định

# Range from 0 to 9
range[10]           # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

# Range from 5 to 9
range[5, 10]        # 5, 6, 7, 8, 9

# Range from 1 to 100 with step size of 10
range[0, 110, 10]   # 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

# Reversed range from 100 to 0 with step size of -10.
range[100, -10, -10]  # 100, 90, 80, 70, 60, 50, 40, 30, 20, 10
3

Kết quả của bạn sẽ là một phạm vi trống, nghĩa là không có giá trị nào cả

# Range from 0 to 9
range[10]           # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

# Range from 5 to 9
range[5, 10]        # 5, 6, 7, 8, 9

# Range from 1 to 100 with step size of 10
range[0, 110, 10]   # 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

# Reversed range from 100 to 0 with step size of -10.
range[100, -10, -10]  # 100, 90, 80, 70, 60, 50, 40, 30, 20, 10
0

Phạm vi âm với số tăng dần

Để tạo một dải giá trị âm theo thứ tự tăng dần, hãy sử dụng hàm range[] tích hợp giống như khi bạn sử dụng hàm này với các số dương

Ví dụ: hãy tạo một dãy số âm từ -10 đến -5

# Range from 0 to 9
range[10]           # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

# Range from 5 to 9
range[5, 10]        # 5, 6, 7, 8, 9

# Range from 1 to 100 with step size of 10
range[0, 110, 10]   # 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

# Reversed range from 100 to 0 with step size of -10.
range[100, -10, -10]  # 100, 90, 80, 70, 60, 50, 40, 30, 20, 10
5

đầu ra

# Range from 0 to 9
range[10]           # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

# Range from 5 to 9
range[5, 10]        # 5, 6, 7, 8, 9

# Range from 1 to 100 with step size of 10
range[0, 110, 10]   # 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

# Reversed range from 100 to 0 with step size of -10.
range[100, -10, -10]  # 100, 90, 80, 70, 60, 50, 40, 30, 20, 10
6

Lưu ý cách tham số bước không cần thiết khi bạn tăng số lên một

Lập chỉ mục phạm vi trong Python

Trong Python, hàm range[] tạo ra một đối tượng phạm vi. Đối tượng phạm vi này hỗ trợ lập chỉ mục giống như cách các lần lặp khác, chẳng hạn như danh sách, thực hiện

Ví dụ: hãy lấy số thứ hai trong một dãy số

# Range from 0 to 9
range[10]           # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

# Range from 5 to 9
range[5, 10]        # 5, 6, 7, 8, 9

# Range from 1 to 100 with step size of 10
range[0, 110, 10]   # 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

# Reversed range from 100 to 0 with step size of -10.
range[100, -10, -10]  # 100, 90, 80, 70, 60, 50, 40, 30, 20, 10
7

đầu ra

# Range from 0 to 9
range[10]           # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

# Range from 5 to 9
range[5, 10]        # 5, 6, 7, 8, 9

# Range from 1 to 100 with step size of 10
range[0, 110, 10]   # 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

# Reversed range from 100 to 0 with step size of -10.
range[100, -10, -10]  # 100, 90, 80, 70, 60, 50, 40, 30, 20, 10
8

Không cần phải đề cập đến các đối tượng phạm vi cũng hỗ trợ lập chỉ mục tiêu cực

Ví dụ: hãy lấy phần tử cuối cùng của một phạm vi bằng cách sử dụng chỉ mục phủ định -1

# Range from 0 to 9
range[10]           # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

# Range from 5 to 9
range[5, 10]        # 5, 6, 7, 8, 9

# Range from 1 to 100 with step size of 10
range[0, 110, 10]   # 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

# Reversed range from 100 to 0 with step size of -10.
range[100, -10, -10]  # 100, 90, 80, 70, 60, 50, 40, 30, 20, 10
9

đầu ra

range[start, stop, step]
0

Cắt phạm vi trong Python

Các đối tượng phạm vi Python hỗ trợ cắt. Điều này có nghĩa là bạn có thể lấy một phần nhóm số từ một phạm vi bằng cách sử dụng phép cắt

Khi bạn cắt một đối tượng phạm vi trong Python, kết quả là bạn sẽ nhận được một đối tượng phạm vi. Đối tượng phạm vi này chứa một phần của phạm vi ban đầu

Nếu bạn không quen với việc cắt lát trong Python, vui lòng kiểm tra bài viết này

Ví dụ: hãy lấy 3 số đầu tiên trong một dãy

range[start, stop, step]
1

đầu ra

range[start, stop, step]
2

Một cách phổ biến để sử dụng cắt lát trong Python là đảo ngược một lần lặp với cắt lát bằng [. -1]. Bạn cũng có thể làm tương tự cho một dãy số

Chẳng hạn, hãy đảo ngược một dãy số từ 1 đến 5

range[start, stop, step]
3

đầu ra

range[start, stop, step]
4

Phạm vi bao gồm

Hàm range[] trong Python tạo ra một dải giá trị không bao gồm giá trị cuối cùng theo mặc định

Ví dụ: phạm vi [0,5] tạo ra một phạm vi giá trị 0, 1, 2, 3, 4

Để tạo một phạm vi bao gồm, tức là để thêm giá trị dừng vào trong phạm vi, hãy thêm giá trị bước vào giá trị dừng

Ví dụ: hãy tạo một loạt các giá trị từ 1 đến 5

range[start, stop, step]
5

đầu ra

range[start, stop, step]
6

Đối với Vòng lặp có phạm vi [] trong Python

Một cách phổ biến để sử dụng hàm range[] là dùng vòng lặp for

Lặp qua các số với phạm vi []

Trường hợp sử dụng cơ bản nhất là khi lặp qua các số từ n đến m

Ví dụ: hãy in các số từ 1 đến 5

range[start, stop, step]
7

đầu ra

range[start, stop, step]
8

Lặp lại với một chỉ mục Sử dụng hàm range[]

Một trường hợp sử dụng phổ biến khác cho phạm vi [] là truy cập chỉ mục [hoặc chỉ mục] của một phần tử bằng vòng lặp for

Ví dụ: hãy in danh sách tên và chỉ mục của chúng trong danh sách

range[start, stop, step]
9

đầu ra

range[stop]
0

Mặc dù có một giải pháp tốt hơn nhiều để lấy chỉ mục bằng cách sử dụng hàm enumerate[]. Hãy cùng xem chức năng này hoạt động như thế nào

Thay thế cho Hàm range[] với Vòng lặp For

Bây giờ bạn đã biết phạm vi [] có thể được sử dụng trong vòng lặp for để lấy chỉ mục của các phần tử. Trong khi đó, điều này thường được dạy cho người mới bắt đầu, nó không phải là cách lý tưởng để làm điều đó

Thay vào đó, bạn nên sử dụng hàm enumerate[] tích hợp sẵn

Ví dụ: hãy lặp lại ví dụ in danh sách tên và chỉ mục của chúng. Lần này chúng ta không sử dụng phạm vi [] mà thay vào đó là liệt kê []

range[stop]
1

đầu ra

range[stop]
0

Tóm lại, hàm enumerate[] kết hợp các phần tử danh sách với chỉ mục của chúng

Trong ví dụ trên, liệt kê[hàng đợi] tạo ra một đối tượng với các cặp vị trí, tên

range[stop]
3

Phần kết luận

Hôm nay bạn đã học cách sử dụng hàm range[] trong Python

Tóm lại, hàm range[] trả về một dải giá trị từ n cho đến m

Ví dụ: phạm vi [5] trả về các số 0,1,2,3,4

Kết quả của hàm range[] là một đối tượng phạm vi. Bạn có thể sử dụng đối tượng phạm vi để lặp qua phạm vi. Ngoài ra, bạn có thể chuyển đối tượng phạm vi thành danh sách để nhận danh sách đại diện cho một phạm vi số

Tôi có thể sử dụng cái gì thay vì phạm vi trong Python?

Thay vì sử dụng hàm range[], chúng ta có thể sử dụng hàm enumerate[] tích hợp sẵn trong python. enumerate[] cho phép chúng ta lặp qua một chuỗi nhưng nó theo dõi cả chỉ mục và phần tử.

Tôi có thể sử dụng cái gì thay vì phạm vi Len?

Sử dụng liệt kê[đối tượng] thay vì phạm vi[len[đối tượng]] . liệt kê các vòng lặp trên trình vòng lặp my_list và trả về cả mục và chỉ mục của nó dưới dạng bộ mục mục chỉ mục khi bạn lặp qua đối tượng của mình [xem mã và đầu ra bên dưới để xem đầu ra của bộ].

Phạm vi [] so với Xrange [] là gì?

Phương thức range[] trong Python được sử dụng để trả về một đối tượng chuỗi. Nó được sử dụng trong Python 3. x Hàm xrange[] được sử dụng để tạo chuỗi số và được sử dụng trong Python 2. x

Phạm vi [] trong Python là gì?

Hàm phạm vi Python[] . returns a sequence of numbers, starting from 0 by default, and increments by 1 [by default], and stops before a specified number.

Chủ Đề