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
# integersdemo = 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 range()不返回迭代器】首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
推荐阅读
- Python使用.kv文件的Kivy中的Progressbar小部件
- Python range()函数用法介绍和示例
- Python使用pandas.read_csv()读取csv示例
- 1debian11基本配置
- 2022年最强大数据面试宝典(全文50000字,建议收藏)
- Zabbix学习笔记(三十六)
- Yarn状态机框架分析
- F5 GTM DNS 知识点和实验 1 -F5设备初识
- F5 GTM DNS 知识点和实验 2 -DNS基础知识