当前位置: 首页 > 面试题库 >

Python 3范围与Python 2范围

拓拔松
2023-03-14
问题内容

我最近开始学习python3。
python 2 range()中,可以使用函数来分配列表元素。

>>> A = []
>>> A = range(0,6)
>>> print A
[0, 1, 2, 3, 4, 5]

如使用功能时在 python 3 中一样range()

>>> A = []
>>> A = range(0,6)
>>> print(A)
range(0, 6)

为什么会这样呢?
python为什么要进行此更改?
是恩赐还是祸根?


问题答案:

Python 3 在很多地方使用了 迭代器 ,而 python 2 使用了 列表
。文档给出了详细的解释,包括对的更改range

优点是,如果您使用大范围的迭代器或映射, Python 3 不需要分配内存。例如

for i in range(1000000000): print(i)

在python 3中需要更少的内存。如果您确实想让Python一次全部扩展列表,则可以

list_of_range = list(range(10))


 类似资料:
  • 问题内容: 在Angularjs中,是否有特定的原因要在控制器中使用,并且要在指令链接函数中使用(不使用)?这仅仅是公约还是其他? 问题答案: 该情况下,当你在控制器的依赖注入范围内喷射基于匹配变量名使用,在这种情况下,因为名字是行不通的。 对于指令的情况下,注塑基于位置,所以你可以命名你的变量或或任何东西。链接功能的指令顺序为 因此,第一个元素始终是作用域对象。

  • 问题内容: 我知道变量作用域由块的开始和块的结尾包围。如果在块内声明了相同的变量,则会发生编译错误。但是,请看以下示例。 在这里,可以在方法中重新声明,尽管它已经在类中声明了。但是在块中,无法重新声明。 为什么类范围变量的重新声明不产生错误,而方法范围变量的重新声明却产生错误? 问题答案: 这是因为不是变量,而是实例字段。允许局部变量与字段具有相同的名称。为了区分变量和具有相同名称的字段,我们在实

  • 问题内容: 我知道变量作用域由块的开始和块的结尾包围。如果在块内声明了相同的变量,则会发生编译错误。但是,请看以下示例。 在这里,可以在方法中重新声明,尽管它已经在类中声明了。但是在块中,无法重新声明。 为什么类范围变量的重新声明不产生错误,而方法范围变量的重新声明却产生错误? 问题答案: 这是因为不是变量,而是实例字段。允许局部变量与字段具有相同的名称。为了区分变量和具有相同名称的字段,我们在实

  • 问题内容: 如何在Swift中转换为? 我想使用以下方法: 问题答案: 的版本(与Swift String相对)接受an ,因此一个简单的解决方案是将其 转换为first。在Swift3和2中,委托和替换方法的名称略有不同,因此取决于您使用的是哪种Swift: UITextField3.0 UITextField2.x

  • Rails 当调用 render 或 redirect_to 后需要马上"返回"时,把 return 放到下一行, 不要放到同一行。 # 错误 render :text => 'Howdy' and return # 正确 render :text => 'Howdy' return # still bad render :text => 'Howdy' and return if foo.p

  • Scope是一个特殊的JavaScript对象,它将控制器与视图连接起来。 范围包含模型数据。 在控制器中,模型数据通过$ scope对象访问。 <script> var mainApp = angular.module("mainApp", []); mainApp.controller("shapeController", function($scope) { $sco