range() :Python范围函数会生成一个数字列表, 该数字列表通常在for循环或许多其他情况下的许多情况下用于迭代。在python range对象不是迭代器。 range是不可变对象列表的一类。 range的迭代行为类似于list和range中list的迭代行为, 我们不能直接调用next函数。如果我们得到一个使用iter的迭代器, 则可以调用next。
# Python program to understand range
# this creates a list of 0 to 5
# integers
demo = range ( 6 )
# print the demo
print (demo)
# it will generate error
print ( next (demo))
输出:
range(0, 6)
运行时错误:
Traceback (most recent call last):
File "/home/6881218331a293819d2a4c16029084f9.py", line 13, in
print(next(demo))
TypeError: list object is not an iterator
注意 :以上运行时错误明确表明python range不是迭代器。
因为范围是可迭代的因此我们可以在它们的帮助下获得一个迭代器, 但不能直接在next中调用next。下面的示例清楚地说明了这一点
# Python program to understand range
# creates an iterator
demo = iter ( range ( 6 ))
# print iterator
print (demo)
# use next
print ( next (demo))
输出:
<listiterator object at 0x7f3f32a46450>
0
创建范围时, range不会生成它包含的所有数字。它只给出我们使用循环得到的那些数字。范围具有以下属性。
- 范围对象是不可变的, 这意味着它们不能再次更改, 因此可以用作字典中的索引。
- 它们具有start stop和step参数。
- 同一范围可以一次又一次地访问
例子
# Python program to understand range
# creates a demo range
demo = range ( 1 , 31 , 2 )
# print the range
print (demo)
# print the start of range
print (demo.start)
# print step of range
print (demo.step)
# print the index of element 23
print (demo.index( 23 ))
# since 30 is not present it will give error
print (demo.index( 30 ))
输出:
range(1, 31, 2)
1
2
11
运行时错误:由于元素30不存在, 它将引发错误
Traceback (most recent call last):
File "/home/cddaae6552d1d9288d7c5ab503c54642.py", line 19, in
print(demo.index(30))
ValueError: 30 is not in range
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
评论前必须登录!
注册