想象一下这样的场景:面试官要求你从 1 开始求出前 1000 个完全平方数的和。
现在,在解答这道题时,的标准方法。标准代码目前只能帮到你,它只是用来显示 1 到 1,000,000 之间所有完全平方数的列表并计算总和的合适答案。但当面试官开始增加完全平方数的数量时,麻烦就开始了。
起初,你的函数会给出所有正确的
答案。但很快它就开始变慢,最终导致进程崩溃或永远无法正确加载。你可以好奇为什么会这样,这是一个完全可以接受的疑问。
让我们深入研究一下其中的复杂之处,了解一下到底发生了什么。对于计算机来说,100 个完全平方数的列表并不是什么大问题 计可以显著增加访问者 。它 可以轻松地在几秒钟内计算出这个数字。然而,随着数值的增加,系统的内存会减少。1 亿或 10 亿的数据量非常大,很容易超出计算机可访问的内存资源。这就是这里发生的事情。
幸好,我们有一个简单的技巧,可以几乎立即解决内存问题。只需将括号替换为圆括号即可。
将括号替换为圆括号,列表推导 决策者电子邮件列表 式就变成了生成器表达式。生成器表达式更适合从序列中检索数据,但您不需要同时访问所有数据。
生成器表达式不是生成列表,而是返回一个生成器对象。该对象会查看并分析其当前状态的任务,并且仅在需要时才计算下一个值。
因此,当数量通过循环调用 __next__ () 在生成器对象上重复时,生成器会跟踪 I 等于多少,并计算 I * I,在内部增加 I,然后将值返回给 sum。该方案使生成器能够适应系统,因此可以用于海量数据排列网络,因为内存中一次只存在一个元素。
使用 .get() 和 .set default() 在字典中定义默认值
最常见的程序设计职责之一是添加、调整或恢复字典中可能存在或不存在的项目。Python 字典拥有精心设计的接口, 领导孟加拉国搜索引擎优化使这些任务变得直观且轻松。