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

Python range()和zip()对象类型

娄弘
2023-03-14
问题内容

我理解的功能怎么样range(),并zip()可以被用在for循环。但是我希望range()输出一个列表-非常像sequnix
shell中的列表。如果我运行以下代码:

a=range(10)
print(a)

输出为range(10),表明它不是列表,而是其他类型的对象。zip()打印时具有类似的行为,输出类似

<zip object at "hexadecimal number">

所以我的问题是它们是什么,使它们具有什么优点?如何在不循环访问它们的情况下将其输出到列表中?


问题答案:

您必须使用Python 3。

在Python
2中,对象ziprange确实按照您的建议运行,返回列表。它们被更改为类似生成器的对象,它们按需生成元素,而不是将整个列表扩展到内存中。优势之一是在其典型用例中具有更高的效率(例如,对它们进行迭代)。

“懒惰”版本在Python 2.x中也存在,但是它们具有不同的名称,即xrangeitertools.izip

要将所有输出一次检索到一个熟悉的列表对象中,您可以简单地调用list以迭代并使用内容:

>>> list(range(3))
[0, 1, 2]
>>> list(zip(range(3), 'abc'))
[(0, 'a'), (1, 'b'), (2, 'c')]


 类似资料:
  • 一、初识类和对象 Scala 的类与 Java 的类具有非常多的相似性,示例如下: // 1. 在 scala 中,类不需要用 public 声明,所有的类都具有公共的可见性 class Person { // 2. 声明私有变量,用 var 修饰的变量默认拥有 getter/setter 属性 private var age = 0 // 3.如果声明的变量不需要进行初始赋值,此

  • 枚举类型(Enum Type) 枚举类型是一种特殊的数据类型,使一个变量是一组预定义的常量。变量必须等于已预先定义的值之一。常见的例子包括罗盘方向( NORTH, SOUTH, EAST 和 WEST)和星期几。 使用关键字 enum ,下面是一个星期几的枚举列子: public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THUR

  • 1、类和对象之间的关系 这部分内容主要讲类和对象,我们先来说说类和对象之间的关系。 类是对象的模板 我们得先有了类,才能制作出对象。 类就相对于工厂里面的模具,对象就是根据模具制造出来的产品。 从模具变成产品的过程,我们就称为类的实例化。 类实例化之后,就变成对象了。也就是相当于例子中的产品。 2、类的实例化 这里强调一下,类的实例化和直接使用类的格式是不一样的。 之前我们就学过,直接使用类格式是

  • 主要内容:类定义,成员函数和封装,构造函数和析构函数,VB.Net类的共享成员,继承当定义一个类时,就定义了一个数据类型的蓝图(或模板)。这实际上并没有定义任何数据,但它确实定义了类名和含义,即该类的一个对象将包含哪些内容以及可以在这样的对象上执行哪些操作。 对象是一个类的实例。构成类的方法和变量被称为类的成员。 类定义 类定义以关键字开头,后面跟着类名和类体,并以语句结束。 以下是类定义的一般形式: 其中, attributelist 是适用于该类的属性列表,这是一个可选项。

  • 主要内容:类定义,成员函数和封装,构造函数和析构函数,VB.Net类的共享成员,继承当定义一个类时,就定义了一个数据类型的蓝图(或模板)。这实际上并没有定义任何数据,但它确实定义了类名和含义,即该类的一个对象将包含哪些内容以及可以在这样的对象上执行哪些操作。 对象是一个类的实例。构成类的方法和变量被称为类的成员。 类定义 类定义以关键字开头,后面跟着类名和类体,并以语句结束。 以下是类定义的一般形式: 其中, attributelist 是适用于该类的属性列表,这是一个可选项。

  • 主要内容:类定义,类的属性,主构造器,次构造函数,抽象类,嵌套类,内部类,匿名内部类,类的修饰符类定义 Kotlin 类可以包含:构造函数和初始化代码块、函数、属性、内部类、对象声明。 Kotlin 中使用关键字 class 声明类,后面紧跟类名: 我们也可以定义一个空类: 可以在类中定义成员函数: 类的属性 属性定义 类的属性可以用关键字 var 声明为可变的,否则使用只读关键字 val 声明为不可变。 我们可以像使用普通函数那样使用构造函数创建类实例: 要使用一个属性,只要用名称引用它即