关于Python的内置对象,你真的全部了解?

Python为什么要使用内置对象类型

Python程序可以分解为模块、语句、表达式、以及对象:

    1. 程序由模块构成
    2. 模块包含语句
    3. 语句包含表达式
    4. 表达式建立并处理对象

说明:

在Python中,数据是以对象的形式出现,无论是Python提供的内置对象还是扩展对象,所以学习Python可以从底层开始,探索Python使用的内置对象。

主要内置对象:

    • 可变序列: 列表
    • 不可变序列:字符串、元祖
    • 集合
    • 映射(字典)
    • 数字
    • 文件
    • 其他类型

内置对象的作用:

  • 内置对象往往比定制的数据结构更有效率,这是因为Python内置对象优化了用c实现数据结构的算法。
  • 内置对象使得程序更容易编写。例如,集合(列表)和搜素表(字典),可以马上使用它们,而不需要自己去编写这些数据结构。
  • 内置对象可拓展。对于复杂的一些应用任务,需要提供自己编写的对象类型,这时候可以利用Python的类或c语言的接口,往往这些拓展对象是建立在内置对象的基础上。

常用内置对象简介

列表:

    • 可包含任意对象的有序集合
    • 通过下标索引(位置偏移)访问元素
    • 可变长度,异质,可任意嵌套
    • 支持原位改变
    • 对象引用数组

列表基础运算:

列表主要方法:

列表推导式:

  • 列表推导式提供了从序列创建列表的简单途径。
  • 常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列

列表推导式例子:

常考点:

  • list.extend() 和 list.append()方法区别
  • sorted(list) 和 list.sort()方法区别
  • 【面试必备之Python深、浅拷贝。】

元祖:

  • 可包含任意对象的有序集合
  • 通过下标索引(位置偏移)访问元素
  • 固定长度,异质,可任意嵌套
  • 对象引用数组

说明:元祖与列表基础方法类似,主要区别在于元祖长度是固定的。元组使用小括号,列表使用方括号

为什么有了列表还要元祖:

元祖的不可变性提供了某种完整性,这样可以确保元祖子啊程序中不会被另一个引用修改,而列表就没有这样的保证。

集合:

  • 集合(set)是一个无序的不重复元素序列。
  • 可以使用大括号{ }或者set()函数创建集合
  • 创建一个空集合必须用set()而不是{ }
  • 列表推导式,同样集合支持集合推导式(Set comprehension):

集合求交集等操作:

说明:

    • 集合中副本是被忽略的
    • 集合元素的顺序是随意的
    • 集合是可变的,所以不能用做字典的键。
    • 集合本身只能包含不可变值,所以也就不能包含其他集合

限于篇幅:其他关于集合操作可查看官方文档。

http://www.python.org/

字典:

除了列表之外,字典也许是Python中最灵活的内置数据结构类型,字典的主要属性:

    • 通过键而不是偏移量来读取
    • 任意对象的无序集合
    • 可变成、异构、任意嵌套
    • 属于可变映射类型

构造字典的方法:

  • 直接通过赋值创建
  • 通过元祖构造
  • 键值对构造
  • 利用fromkeys()方法构建字典

    第一个参数是一个迭代对象,作为字典的键

    第二个参数是一个值(可选),作为字典中的值

  • 通过zip构造

字典常用方法:

注意事项:

  • 对于序列的运算操作对字典无效
  • 对新索引赋值会添加项
  • 键不一定总是字符串

本节关键术语

  • 内置对象
  • 数据结构
  • 列表推导式
  • 异构
  • 列表、元祖、集合、字典
  • 赋值、引用

Last:

  • 其他内置对象限于篇幅不做介绍,点击阅读全文查看官方文档。

点赞

发表评论