Ranges 范围

1.2.4: Ranges 范围

范围是不可变的整数序列,通常用于for循环。
Ranges are immutable sequences of integers,and they are commonly used in for loops.
要创建一个范围对象,我们键入“range”,然后输入范围的停止值。
To create a range object, we type “range” and then we put in the stopping value of the range.
现在,我们刚刚创建了一个范围对象,但是如果您想查看该对象的实际内容,那么这就没有多大帮助了。
Now, we’ve just created a range object, but this is less helpful if you would like to see what’s the actual content of that object.
虽然,我们通常不会在Python程序中这样做,但为了真正看到该范围对象的内容,我们可以在这种情况下将其转换为列表。
Although, we wouldn’t typically do this in a Python program,for us to really see the content of that range object,so what we can do in this case is we can turn it into a list.
所以如果我们说“范围5列表”,我们会看到范围对象由五个数字组成,从0到4。
So if we say “list of range 5,” we’ll see that the range object consists of five numbers, from 0 to 4.
范围的输入参数是停止值。
The input argument to range is the stopping value.
记住,Python在到达停止值之前停止。
And remember, Python stops before it hits the stopping value.
这就是为什么范围5实际上不包含数字5。
That’s why range 5 does actually not contain the number 5.
我们可以为range函数提供额外的参数。
We can provide additional arguments to the range function.
例如,我们可以提供起点,也可以定义步长。
For example, we can provide the starting point,and we can also define the step size.
所以如果我们输入“range1到6”,在这种情况下,我们得到一个range对象,它从1开始,到5结束。
So if we type “range 1 to 6,” in that case,we get a range object which starts at 1 and ends at 5.
如果我们想以2为增量,我们可以这样做。
If we wanted to go in increments of two, we could do something like this.
我们可以从1开始,一直到13——13号,不包括它本身——我们可以分两步走。
We could start from 1, go up to 13– number 13,not itself included– and we could go in steps of two.
在本例中,我们得到一个从1开始到11结束的范围对象。
In this case, we get a range object that starts at 1 and ends at 11.
通常,当我们在Python程序中使用范围对象时,我们不会首先将它们转换为列表。
Typically when we use range objects in our Python programs,we do not first turn them into lists.
我们在这里这样做只是为了让我们更容易理解这些对象的作用。
We’ve done it here only so that it’s easier for us to understand what these objects do.
当然,您可以在for循环上下文中使用list对象,但由于以下原因,它是有问题的。
You can certainly use a list object in a for loop context,but it’s problematic for the following reason.
为了存储范围对象,Python只存储三个不同的数字,即起始数字、停止数字及其步长。
To store a range object, Python is only storing three different numbers,which are the starting number, the stopping number, and its step size.
如果您有一个非常大的数据集,其中包含(比如)1000万个对象,如果您首先创建一个包含用于访问的索引的列表
If you have a very large dataset that contains, say, 10 million objects,if you first create a list that contains the indices for accessing
这1000万个数字,只是为了能够循环浏览数据而浪费了很多空间。
these 10 million numbers, you’ve just wasted a lot of space just to be able to loop through your data.
因此,请按原样使用范围对象。
Consequently, use range objects as is.
在使用它们之前,不要将它们变成列表。
Don’t turn them into lists before using them.


  转载请注明: 金点帝国 Ranges 范围

 上一篇
Tuples 元组 Tuples 元组
1.2.3: Tuples 元组元组是不可变的序列,通常用于存储异构数据。Tuples are immutable sequences typically used to store heterogeneous data.查看元组的最佳方式
下一篇 
Strings 字符串 Strings 字符串
1.2.5: Strings 字符串字符串是不可变的字符序列。Strings are immutable sequences of characters.在Python中,可以将字符串括在单引号、引号或三引号中。In Python, you
  目录