Python xrange so với phạm vi

Python Xrange Vs Range



Cho đến phiên bản Python 2.x, đã có tổng cộng hai phương thức cơ bản được sử dụng trong ngôn ngữ này để tạo danh sách các số nguyên trong một phạm vi đã cho. Hai phương pháp được liệt kê dưới đây:

phạm vi ()
xrange ()







Về sau, với phiên bản Python mới nhất (3 trở đi), range () đã bị rút lại và xrange () sau đó được đổi thành range (). Bây giờ trong Python 3, chỉ có một hàm cho phương thức này, tức là range (). Trong Python 3, hàm range () chỉ là một cách khác để triển khai phiên bản cũ hơn của xrange () của python 2.x. Ở đây, chúng tôi sẽ liên hệ hai điều này.



Xrange ()

Hàm xrange () được sử dụng để tạo một dãy số giống như hàm range ().



Cú pháp

Cú pháp được sử dụng để định nghĩa xrange () là:





xrange(bắt đầu,kết thúc,bươc chân)

Hàm được sử dụng để xác định phạm vi số bắt đầu từ (được bao gồm) cho đến cuối (không được bao gồm).

Thông số

Sau đây là danh sách các tham số cần thiết:



& emsp; Bắt đầu: Vị trí bắt đầu của dãy số
& emsp; End: Vị trí kết thúc của dãy số
& emsp; Bước: Sự phân biệt giữa hai số liên tiếp trong chuỗi.

Các ví dụ

Trong ví dụ sau, chúng ta sẽ kiểm tra các cách xác định xrange.

Ở đây, chúng tôi sẽ chỉ xác định vị trí kết thúc.

Vì vậy, giá trị kết thúc được đặt là 5, và sau đó chúng tôi nhận được vị trí kết thúc được in, như được hiển thị bên dưới:

Bây giờ, chúng ta sẽ thấy phương thức gọi phạm vi, cú pháp kết thúc cuộc gọi sẽ là:

>>>NS= xrange(kết thúc)

Sau đó, chúng tôi sẽ nhận được nó in.

Chúng tôi sẽ nhận được phạm vi trong đầu ra, như được hiển thị ở trên.

Bây giờ, chúng ta sẽ xác định cả điểm đầu và điểm cuối. Ở đây, điểm bắt đầu là 2 và điểm kết thúc là 5. Sau đó, chúng tôi in vị trí bắt đầu và kết thúc, như hình dưới đây:

Sau đó, chúng tôi sẽ tạo một chuỗi các số từ điểm bắt đầu và điểm kết thúc, tức là từ 2 đến 5.

>>>= xrange(bắt đầu,kết thúc)

Cuối cùng, chúng ta sẽ kiểm tra phương pháp xác định điểm bắt đầu, bước và điểm kết thúc. Khi chúng tôi đã xác định cả ba tham số; chúng tôi sẽ gọi chúng tương tự như phương thức được hiển thị bên dưới:

Bây giờ, để gọi xrange cho ba tham số này, chúng ta sẽ sử dụng cú pháp sau:

>>>Với= xrange(bắt đầu,bươc chân,kết thúc)

Phạm vi ()

Range () được sử dụng để tạo danh sách và là một hàm nhanh hơn cho nhiều lần lặp.

Cú pháp

Cú pháp sau được sử dụng:

>>> phạm vi(bắt đầu,kết thúc,bươc chân)

Các ví dụ

Đối với trường hợp đầu tiên, chúng tôi sẽ xác định giá trị cuối cùng. Cú pháp được sử dụng cho việc này là:

>>> phạm vi(kết thúc)

Vì vậy, trong ví dụ được đưa ra bên dưới, chúng tôi sẽ sử dụng 3 làm giá trị kết thúc của phạm vi. Khi chúng tôi in nó ra, nó sẽ trả về các giá trị, không bao gồm giá trị cuối.

Trong ví dụ tiếp theo, chúng tôi đang sử dụng ví dụ mô tả điểm bắt đầu và điểm kết thúc. Giá trị sẽ bắt đầu từ 1 và kết thúc ở 10 (bằng cách loại trừ nó). Điểm bắt đầu được bao gồm, nhưng điểm kết thúc bị bỏ qua. Cú pháp tương tự như cú pháp dưới đây:

>>> phạm vi (bắt đầu,kết thúc)

Vì vậy, chúng tôi xác định điểm bắt đầu và sau đó là điểm cuối, lần lượt là 1 và 10.

Bây giờ, trong ví dụ tiếp theo, chúng ta sẽ có hàm bước. Hàm xác định khoảng cách giữa hai điểm bất kỳ trong chuỗi. Giá trị sẽ bắt đầu từ 0 và kết thúc ở 10 (bằng cách loại trừ nó). Cú pháp được sử dụng được đưa ra dưới đây:

>>> phạm vi (bắt đầu,bươc chân,kết thúc)

Ví dụ được đưa ra bên dưới, trong đó 2 là giá trị bước.

Thuận lợi

phạm vi ()

Sẽ nhanh hơn nếu lặp lại nhiều lần. range () chỉ có các giá trị đối tượng số nguyên thời gian thực. Về bộ nhớ, nó không hoạt động tốt.

xrange ()

Nó phải tạo lại đối tượng số nguyên mỗi lần. xrange () thì không vì nó không hỗ trợ các phương thức slice và list. xrange () chiếm cùng một lượng bộ nhớ. Vì vậy, liên quan đến hiệu suất, đặc biệt khi người dùng đang lặp lại trên một giá trị phạm vi lớn hơn, xrange () hoạt động tốt hơn nhiều.

Điểm tương đồng giữa phạm vi Python 2 và Python 3 và xrange

Xrange của Python 2 có biểu diễn mô tả ở dạng chuỗi, rất giống với giá trị đối tượng phạm vi của Python 3.

Giá trị của xrange () trong Python 2 có thể lặp lại được, rang () trong Python 3 cũng vậy.

xrange () và range () đều có giá trị bước, điểm kết thúc và điểm bắt đầu. Trong cả hai trường hợp, bước là trường tùy chọn, giá trị bắt đầu cũng vậy.

Cả xrange của Python 2 và 3 đều hỗ trợ độ dài có thể được lập chỉ mục theo thứ tự thuận hoặc ngược. Đây là một ví dụ tương tự:

Sự khác biệt giữa dải ô () và xrange ()

Vì xrange () chỉ đánh giá đối tượng trình tạo với các giá trị cần thiết bởi đánh giá lười biếng, nên việc triển khai trên phạm vi () sẽ nhanh hơn. range () giúp trả về danh sách và có tất cả các đối tượng có thể được sử dụng, trong khi xrange () trả về các đối tượng được liên kết với một danh sách và không thể áp dụng cho chúng nên chúng ta có thể coi đó là một bất lợi.

Biến được sử dụng trong hàm range () lưu trữ giá trị của dải và do đó chiếm nhiều bộ nhớ so với xrange () chỉ chiếm một số bộ nhớ do các biến. range () trả về đối tượng phạm vi trong khi xrange () trả về đối tượng trình tạo.

Hàm range (1, 7, 2) sẽ trả về đầu ra [1, 3, 5] và đầu vào xrange (1, 7, 2) sẽ trả về đầu ra [1, 3, 5]. Đó là cách chúng tôi có thể giả định rằng chúng giống nhau về mô hình.

Phần kết luận

range () và xrange () đều có các đặc điểm khác nhau, như đã thảo luận ở trên. Tất cả các so sánh được đề cập trong hướng dẫn này, cùng với các ví dụ, sẽ hữu ích cho người đọc để chọn tốt hơn phương pháp ưa thích của họ dựa trên yêu cầu của họ.