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

     干货福利,第一时间送达


  本节目录


1、 Previous view

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

3、 常用内置对象简介

        3.1、 列表

        3.2、 元祖

        3.3、 集合

        3.4、 字典

4、 本节关键术语


  Previous review


从硬件架构到编程逻辑,Python入门打卡

当从硬件架构到编程逻辑了解完之后,现在去学习编程实际上可以理解的更透彻。


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


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

    1. 程序由模块构成

    2. 模块包含语句

    3. 语句包含表达式

    4. 表达式建立并处理对象


说明

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


主要内置对象

    • 可变序列: 列表

    • 不可变序列:字符串、元祖

    • 集合

    • 映射(字典)

    • 数字

    • 文件

    • 其他类型


内置对象的作用:


  • 内置对象往往比定制的数据结构更有效率,这是因为Python内置对象优化了用c实现数据结构的算法。


  • 内置对象使得程序更容易编写。例如,集合(列表)和搜素表(字典),可以马上使用它们,而不需要自己去编写这些数据结构。


  • 内置对象可拓展。对于复杂的一些应用任务,需要提供自己编写的对象类型,这时候可以利用Python的类或c语言的接口,往往这些拓展对象是建立在内置对象的基础上。


  常用内置对象简介


列表

    • 可包含任意对象的有序集合

    • 通过下标索引(位置偏移)访问元素

    • 可变长度,异质,可任意嵌套

    • 支持原位改变

    • 对象引用数组


列表基础运算:


图片


列表主要方法:


图片


列表推导式


  • 列表推导式提供了从序列创建列表的简单途径。


  • 常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列


列表推导式例子


图片


常考点


元祖

  • 可包含任意对象的有序集合

  • 通过下标索引(位置偏移)访问元素

  • 固定长度,异质,可任意嵌套

  • 对象引用数组


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


为什么有了列表还要元祖

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


集合:

  • 集合(set)是一个无序的不重复元素序列。

  • 可以使用大括号 { } 或者 set() 函数创建集合

  • 创建一个空集合必须用 set() 而不是 { }

  • 列表推导式,同样集合支持集合推导式(Set comprehension):


集合求交集等操作


图片


说明

    • 集合中副本是被忽略的

    • 集合元素的顺序是随意的

    • 集合是可变的,所以不能用做字典的键。

    • 集合本身只能包含不可变值,所以也就不能包含其他集合


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

http://www.python.org/


字典


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

    • 通过键而不是偏移量来读取

    • 任意对象的无序集合

    • 可变成、异构、任意嵌套

    • 属于可变映射类型


构造字典的方法


  • 直接通过赋值创建

图片


  • 通过元祖构造

图片


  • 键值对构造

图片


  • 利用fromkeys()方法构建字典

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

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

图片


  • 通过zip构造

图片


字典常用方法


图片


注意事项


  • 对于序列的运算操作对字典无效

  • 对新索引赋值会添加项

  • 键不一定总是字符串


  本节关键术语

  • 内置对象

  • 数据结构

  • 列表推导式

  • 异构

  • 列表、元祖、集合、字典

  • 赋值、引用


Last

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

  • 需要本节测试代码可在后台回复“内置对象”。



猜你喜欢

转载自blog.51cto.com/15127516/2682998