xrange
và range
trong PythonTrong Python, range
và xrange
đều được sử dụng để tạo ra một chuỗi số, nhưng chúng có một số khác biệt quan trọng, đặc biệt là trong các phiên bản khác nhau của Python. Dưới đây là những điểm khác biệt chính giữa chúng:
range
trả về một danh sách (list) chứa tất cả các số trong khoảng đã chỉ định.xrange
trả về một đối tượng xrange
, cho phép lặp qua các số trong khoảng mà không tạo ra một danh sách đầy đủ.range
được cải tiến và hoạt động giống như xrange
trong Python 2. Nó trả về một đối tượng range
, không tạo ra một danh sách đầy đủ. xrange
không còn tồn tại trong Python 3.range
trong Python 2:
range
, nó tạo ra một danh sách chứa tất cả các số trong khoảng, điều này có thể tiêu tốn nhiều bộ nhớ khi khoảng lớn. Ví dụ:numbers = range(1, 1000000) # Tạo một danh sách lớn
xrange
trong Python 2:
xrange
, nó chỉ tạo ra các số khi cần thiết (lazy evaluation), giúp tiết kiệm bộ nhớ. Ví dụ:numbers = xrange(1, 1000000) # Không tạo ra danh sách lớn ngay lập tức
range
:
range
trong Python 3.xrange
:
xrange
.# Python 2 # Sử dụng range my_range = range(5) print(my_range) # Output: [0, 1, 2, 3, 4] # Sử dụng xrange my_xrange = xrange(5) print(my_xrange) # Output: xrange(0, 5) # Lặp qua xrange for i in my_xrange: print(i) # Output: 0 1 2 3 4
# Python 3 my_range = range(5) print(my_range) # Output: range(0, 5) # Lặp qua range for i in my_range: print(i) # Output: 0 1 2 3 4
Nếu bạn đang làm việc với Python 2, hãy chọn xrange
khi bạn muốn tiết kiệm bộ nhớ và làm việc với các khoảng lớn. Nếu bạn đang sử dụng Python 3, chỉ cần dùng range
, vì nó đã được cải thiện để hoạt động như xrange
trong Python 2.