首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么range不是迭代器?range到底是什么类型?

for-循环 遍历时,可迭代对象与迭代器的性能是一样的,即它们都是惰性求值的,空间复杂度与时间复杂度上并无差异。...对于这种解读,你是否觉得有道理呢?欢迎就这个话题与我探讨。 3、range 类型是什么? 以上是我对“为什么range()不产生迭代器”的一种解答。...TypeError: unsupported operand type(s) for *: 'range' and 'int' 那么问题来了:同样是不可变序列,为什么字符串和元组就支持上述两种操作,而偏偏...由此推论,其它修改动作也破坏等差数列结构,所以统统不给修改就是了。 4、小结 回顾全文,我得到了两个偏冷门的结论:range 是可迭代对象而不是迭代器;range 对象是不可变的等差序列。...但如果我追问,为什么 range 不是迭代器呢,为什么 range不可变序列呢?对这俩问题,你是否还能答出个自圆其说的设计思想呢?

85070
您找到你想要的搜索结果了吗?
是的
没有找到

17个常见的Python运行时错误

2、 使用= 而不是 == 也导致“SyntaxError: invalid syntax” = 是赋值操作符而 == 是等于比较操作。...4、 for 循环语句中忘记调用 len() 导致TypeError: 'list' object cannot be interpreted as an integer” 通常你想要通过索引来迭代一个...“TypeError: 'str' object does not support item assignment” string是一种不可变的数据类型,该错误发生在如下代码中: spam = 'I have...“TypeError: Can't convert 'int' object to str implicitly” 该错误发生在如下代码中: numEggs = 12 print('I have '...()创建整数列表 导致TypeError: 'range' object does not support item assignment” 有时你想要得到一个有序的整数列表,所以 range() 看上去是生成此列表的不错方式

1K40

17个常见的Python运行时错误

2、 使用= 而不是 == 也导致“SyntaxError: invalid syntax” = 是赋值操作符而 == 是等于比较操作。...4、 for 循环语句中忘记调用 len() 导致TypeError: 'list' object cannot be interpreted as an integer” 通常你想要通过索引来迭代一个...“TypeError: 'str' object does not support item assignment” string是一种不可变的数据类型,该错误发生在如下代码中: spam = 'I have...“TypeError: Can't convert 'int' object to str implicitly” 该错误发生在如下代码中: numEggs = 12 print('I have '...()创建整数列表 导致TypeError: 'range' object does not support item assignment” 有时你想要得到一个有序的整数列表,所以 range() 看上去是生成此列表的不错方式

89530

太好了!终于梳理清楚Python多线程与多进程!

2、 使用= 而不是 == 也导致“SyntaxError: invalid syntax”= 是赋值操作符而 == 是等于比较操作。...4、 for 循环语句中忘记调用 len() 导致TypeError: 'list' object cannot be interpreted as an integer” 通常你想要通过索引来迭代一个...TypeError: 'str' object does not support item assignment”string是一种不可变的数据类型,该错误发生在如下代码中: spam = 'I have...“TypeError: Can't convert 'int' object to str implicitly”该错误发生在如下代码中: numEggs = 12 print('I have ' +...()创建整数列表导致TypeError: 'range' object does not support item assignment”有时你想要得到一个有序的整数列表,所以 range() 看上去是生成此列表的不错方式

58720

学习Python,避开这17个低级错误,养成良好的编程习惯!

2、 使用= 而不是 == 也导致“SyntaxError: invalid syntax” = 是赋值操作符而 == 是等于比较操作。...4、 for 循环语句中忘记调用 len() 导致TypeError: 'list' object cannot be interpreted as an integer” 通常你想要通过索引来迭代一个...“TypeError: 'str' object does not support item assignment” string是一种不可变的数据类型,该错误发生在如下代码中: spam = 'I have...“TypeError: Can't convert 'int' object to str implicitly” 该错误发生在如下代码中: numEggs = 12 print('I have '...()创建整数列表 导致TypeError: 'range' object does not support item assignment” 有时你想要得到一个有序的整数列表,所以 range() 看上去是生成此列表的不错方式

52020

17个新手常见Python运行时错误

该错误发生在如下代码中: 4)for循环语句中忘记调用len()(导致TypeError: ‘list’ object cannot be interpreted as an integer”) 通常你想要通过索引来迭代一个...要记得返回len值而不是返回这个列表。...该错误发生在如下代码中: 5)尝试修改string的值(导致TypeError: ‘str’ object does not support item assignment”) string是一种不可变的数据类型...,该错误发生在如下代码中: 而你实际想要这样做: 6)尝试连接非字符串值与字符串(导致TypeError: Can’t convert ‘int’ object to str implicitly”...该错误发生在如下代码中: 15)尝试使用 range()创建整数列表(导致TypeError: ‘range’ object does not support item assignment”) 有时你想要得到一个有序的整数列表

1.4K00

Python 自动化指南(繁琐工作自动化)第二版:四、列表

一种常见的 Python 技术是使用range(len(someList))和for循环来迭代列表的索引。...range(len(supplies))非常方便,因为循环中的代码可以访问索引(作为变量i)和该索引处的值(作为supplies[i])。...尝试重新分配字符串中的单个字符导致一个TypeError错误,您可以通过交互式 Shell 中输入以下内容看到这一点: >>> name = 'Zophie a cat' >>> name[7] =...这就是为什么函数内部的append('Hello')方法调用即使函数调用返回后也影响列表。 请记住这种行为:忘记 Python 以这种方式处理列表和字典变量导致令人困惑的错误。...spam[int(int('3' * 2) // 11)]值为什么? spam[-1]值为什么? spam[:2]值为什么

1.4K20

Python3 与 C# 基础语法对比(List、Tuple、Dict、Set专栏-新排版)

python中不建议for循环中修改列表?...# 由于遍历的过程中,删除了其中一个元素,导致后面的元素整体前移,导致有个元素成了漏网之鱼。 # 同样的,遍历过程中,使用插入操作,也导致类似的错误。这也就是问题里说的无法“跟踪”元素。...6, 7, 8, 9, 10] [x for x in range(1,11)] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 可能有人问,第一种写法不是挺好的嘛,为什么要用第二种复杂写法...,但是可以通过类似这种方式来改变) 案例里面用到了列表和字典(本章有讲解,这边你先看看) 参照C#的可变元组更容易懂 # 扩展:可变的元组(元组定义的时候就不能变了,但是可以通过类似这种方式来改变)...: '>' not supported between instances of 'str' and 'int' TypeError: '>' not supported between instances

2.9K50

2022秋招前端面试题(九)(附答案)

因为 0.1 和 0.2 都是无限循环的二进制了,所以小数位末尾处需要判断是否进位(就和十进制的四舍五入一样)。...虽然捕获阶段规范中规定不允许响应事件,但是实际上还是执行,所以有两次机会获取到目标对象。<!...基于发布订阅模式,就是浏览器加载的时候读取事件相关的代码,但是只有实际等到具体的事件触发的时候才会执行。...如果new一个箭头函数的怎么样箭头函数是ES6中的提出来的,它没有prototype,也没有自己的this指向,更不可以使用arguments参数,所以不能New一个箭头函数。...undefined的情况下,则数组的第一个有效值(非empty)作为累加器的初始值 if(accumulator === undefined) { while(k < len &&

2.6K30
领券