Hướng dẫn does range have a limit in python? - phạm vi có giới hạn trong python không?

Tôi khá mới với Python, vì vậy tôi đang làm việc thông thường của mình để trải qua Project Euler để tìm ra những nút thắt logic trong đầu.

Về cơ bản, tôi cần kích thước danh sách lớn nhất có thể, phạm vi IE (1, n), mà không tràn.

Bất kỳ ý tưởng?

hỏi ngày 14 tháng 7 năm 2010 lúc 15:48Jul 14, 2010 at 15:48

Hướng dẫn does range have a limit in python? - phạm vi có giới hạn trong python không?

2

Nhìn vào get_len_of_range và get_len_of_range_longs trong nguồn mô -đun tích hợp

Tóm tắt: Bạn sẽ nhận được một dòng điện nếu danh sách có nhiều yếu tố hơn có thể phù hợp với một chữ ký dài. Trên Python 32 bit đó là 2**31 - 1, và trên 64 bit Python đó là 2**63 - 1. Tất nhiên, bạn sẽ nhận được một bộ nhớerror ngay cả đối với các giá trị ngay dưới đó.

Đã trả lời ngày 14 tháng 7 năm 2010 lúc 15:56Jul 14, 2010 at 15:56

Devin Jeanpierredevin JeanpierreDevin Jeanpierre

90.3k4 Huy hiệu vàng55 Huy hiệu bạc79 Huy hiệu đồng4 gold badges55 silver badges79 bronze badges

2

Kích thước danh sách của bạn chỉ bị giới hạn bởi bộ nhớ của bạn. Lưu ý rằng, tùy thuộc vào phiên bản Python của bạn, range(1, 9999999999999999) chỉ cần một vài byte RAM vì nó luôn chỉ tạo ra một yếu tố duy nhất của danh sách ảo mà nó trả về.

Nếu bạn muốn khởi tạo danh sách, hãy sử dụng

range(start, stop, step)
0 (điều này sẽ sao chép danh sách ảo).

Đã trả lời ngày 14 tháng 7 năm 2010 lúc 15:52Jul 14, 2010 at 15:52

Aaron Digullaaaron DigullaAaron Digulla

315K104 Huy hiệu vàng583 Huy hiệu bạc808 Huy hiệu đồng104 gold badges583 silver badges808 bronze badges

3

Hàm

range(start, stop, step)
1 trả về một chuỗi các số giữa phạm vi cho.

Thí dụ

# create a sequence of numbers from 0 to 3
numbers = range(4)

# iterating through the sequence of numbers
for i in numbers:
    print(i)

# Output:

# 0
# 1
# 2
# 3

Lưu ý:

range(start, stop, step)
1 Trả về một chuỗi các số bất biến có thể dễ dàng chuyển đổi thành danh sách, bộ dữ liệu, bộ, v.v.
range(start, stop, step)
1 returns an immutable sequence of numbers that can be easily converted to lists, tuples, sets etc.


Cú pháp của phạm vi ()

Hàm

range(start, stop, step)
1 có thể mất tối đa ba đối số:

range(start, stop, step)

Các tham số

range(start, stop, step)
4 và
range(start, stop, step)
5 trong
range(start, stop, step)
1 là tùy chọn.

Bây giờ, hãy xem cách

range(start, stop, step)
1 hoạt động với số lượng đối số khác nhau.


Ví dụ 1: phạm vi () với đối số dừng

Nếu chúng ta chuyển một đối số duy nhất cho

range(start, stop, step)
1, điều đó có nghĩa là chúng ta đang vượt qua đối số
range(start, stop, step)
9.

Trong trường hợp này,

range(start, stop, step)
1 trả về một chuỗi các số bắt đầu từ 0 đến số (nhưng không bao gồm số).0 up to the number (but not including the number).

# numbers from 0 to 3 (4 is not included)
numbers = range(4)
print(list(numbers))    # [0, 1, 2, 3]

# if 0 or negative number is passed, we get an empty sequence
numbers = range(-4)
print(list(numbers))    # []

Ví dụ 2: phạm vi () với các đối số bắt đầu và dừng

Nếu chúng ta chuyển hai đối số cho

range(start, stop, step)
1, điều đó có nghĩa là chúng ta đang thông qua các đối số
range(start, stop, step)
4 và
range(start, stop, step)
9.

Trong trường hợp này,

range(start, stop, step)
1 trả về một chuỗi các số bắt đầu từ
range(start, stop, step)
4 (bao gồm) lên đến
range(start, stop, step)
9 (độc quyền).

# numbers from 2 to 4 (5 is not included)
numbers = range(2, 5)
print(list(numbers))    # [2, 3, 4]

# numbers from -2 to 3 (4 is not included)
numbers = range(-2, 4)    
print(list(numbers))    # [-2, -1, 0, 1, 2, 3]

# returns an empty sequence of numbers
numbers = range(4, 2) 
print(list(numbers))    # []

Ví dụ 3: phạm vi () với các đối số bắt đầu, dừng và bước

Nếu chúng ta vượt qua cả ba đối số,

  • Đối số đầu tiên là
    range(start, stop, step)
    4
  • Đối số thứ hai là
    range(start, stop, step)
    9
  • Đối số thứ ba là
    range(start, stop, step)
    5

Đối số

range(start, stop, step)
5 chỉ định sự gia tăng giữa hai số trong chuỗi.

# numbers from 2 to 10 with increment 3 between numbers
numbers = range(2, 10, 3)
print(list(numbers))    # [2, 5, 8]

# numbers from 4 to -1 with increment of -1
numbers = range(4, -1, -1)    
print(list(numbers))    # [4, 3, 2, 1, 0]

# numbers from 1 to 4 with increment of 1
# range(0, 5, 1) is equivalent to range(5)
numbers = range(0, 5, 1) 
print(list(numbers))    # [0, 1, 2, 3, 4]

Lưu ý: Giá trị mặc định của

range(start, stop, step)
4 là 0 và giá trị mặc định của
range(start, stop, step)
5 là 1. Đó là lý do tại sao
# numbers from 2 to 4 (5 is not included)
numbers = range(2, 5)
print(list(numbers))    # [2, 3, 4]

# numbers from -2 to 3 (4 is not included)
numbers = range(-2, 4)    
print(list(numbers))    # [-2, -1, 0, 1, 2, 3]

# returns an empty sequence of numbers
numbers = range(4, 2) 
print(list(numbers))    # []
3 tương đương với
# numbers from 2 to 4 (5 is not included)
numbers = range(2, 5)
print(list(numbers))    # [2, 3, 4]

# numbers from -2 to 3 (4 is not included)
numbers = range(-2, 4)    
print(list(numbers))    # [-2, -1, 0, 1, 2, 3]

# returns an empty sequence of numbers
numbers = range(4, 2) 
print(list(numbers))    # []
4.
The default value of
range(start, stop, step)
4 is 0, and the default value of
range(start, stop, step)
5 is 1. That's why
# numbers from 2 to 4 (5 is not included)
numbers = range(2, 5)
print(list(numbers))    # [2, 3, 4]

# numbers from -2 to 3 (4 is not included)
numbers = range(-2, 4)    
print(list(numbers))    # [-2, -1, 0, 1, 2, 3]

# returns an empty sequence of numbers
numbers = range(4, 2) 
print(list(numbers))    # []
3 is equivalent to
# numbers from 2 to 4 (5 is not included)
numbers = range(2, 5)
print(list(numbers))    # [2, 3, 4]

# numbers from -2 to 3 (4 is not included)
numbers = range(-2, 4)    
print(list(numbers))    # [-2, -1, 0, 1, 2, 3]

# returns an empty sequence of numbers
numbers = range(4, 2) 
print(list(numbers))    # []
4.


phạm vi () trong vòng lặp

Hàm

range(start, stop, step)
1 thường được sử dụng trong vòng lặp để lặp lại vòng lặp một số lần nhất định. Ví dụ,

# iterate the loop 5 times
for i in range(5):
    print(i, 'Hello')
0 Hello
1 Hello
2 Hello
3 Hello
4 Hello

Bạn có thể có một phạm vi vô hạn trong Python?

Sử dụng hàm phạm vi () trong Python, chúng ta có thể thiết lập một phạm vi đi từ một giá trị đến một giá trị nhất định, chẳng hạn như 1 đến 3, và sau đó lặp lại vô hạn sử dụng hàm chu trình () từ mô -đun itertool.Bằng cách này, chúng ta có thể tạo ra một vòng lặp vô hạn giữa một phạm vi nhất định trong Python.

Range () làm gì trong Python?

Hàm python () hàm Phạm vi () Hàm trả về một chuỗi các số, bắt đầu từ 0 theo mặc định và tăng thêm 1 (theo mặc định) và dừng trước một số được chỉ định.returns a sequence of numbers, starting from 0 by default, and increments by 1 (by default), and stops before a specified number.

Có phạm vi bao gồm Python giới hạn trên?

No.Python Xrange là độc quyền. Nó không bao gồm giá trị giới hạn trên trong kết quả. Python xrange is exclusive. It does not include the upper-bound value in the results.

Có bao nhiêu đối số có thể diễn ra?

Hàm phạm vi mất một hoặc nhiều nhất ba đối số, cụ thể là bắt đầu và giá trị dừng cùng với kích thước bước.one or at most three arguments, namely the start and a stop value along with a step size.