zoukankan      html  css  js  c++  java
  • Python 数据结构理解分享

      摘要:分享学习Python数据结构的一些理解,主要包含序列(如列表和元组),映射(如字典)以及集合3中基本的数据结构,以及可变和不可变数据类型。

      Python 中的数据结构是根据某种方式将数据元素组合起来形成的一个数据元素集合,其中主要包含序列(如列表和元组),映射(如字典)以及集合3中基本的数据结构。几乎所有的Python数据结构都可以归结为这3种数据结构类型。

    1.数据类型结构总表

      Python数据结构除了分为序列(如列表和元组),映射(如字典)以及集合3中基本的数据结构外,也可区分为可变数据类型与不可变数据类型。

      (1)可变数据类型

      通过可变数据类型,可以直接对数据结构对象的内容进行修改(并非是重新对对象赋值操作,即可以对数据结构对象进行元素的赋值修改、删除或增加等操作。由于可变数据类型对象能直接对自身进行修改,所以修改后的新结果仍与原对象引用同一个id地址值,即由始至终只对同一个对象进行了操作。 Python中比较重要的可变数据类型包括列表、字典、可变集合等。

      (2)不可变数据类型

      与可变数据类型不同,不可变数据类型不能对数据结构对象的内容进行修改操作,不可对对象中的元素进行增加、删除和赋值修改。若需要对对象进行内容修改,则需要对其变量名进行重新赋值,赋值操作会把变量名指向一个新对象,新旧对象两者引用两个不同的id地址值。常用的不可变数据类型包括数字、字符串、元组、不可变集合等。

    2.序列类型

      序列是数据结构对象的有序排列,数据结构对象作为序列的元素都会被分配一个位置编号(也称为索引),序列就相当于数学中数列的概念。Python中的序列类型包括字符串(string)、列表(list)、元组(tuple)、Unicode字符串、 buffer对象、 Xrange对象等数据结构,其中字符串、列表和元组最为常用。

    字符串特点:

    • "任何在这双引号之间的文字”;
    • "单引号其实和双引号完全一样”;
    • '''三个引号被用于长段文字

         或说明,只要引号不结束,你就可以任意

         换行''’;

    • 字符串属不可变数据类型。

    列表特点:

    • 列表创建在[ ]中,例[12,’dog’,’猫’]
    • 列表中每个元素都是可变的;
    • 列表中的元素是有序的,每个元素对应一个位置;
    • 列表可以容纳Python中的任何对象。

    元组特点:

    • 元祖创建在( )中,例(55,’app’,’a’,’p’,’p’)
    • 元祖中每个元素都是不可变的;
    • 元祖中的元素是有序的,每个元素对应一个位置。

    3.映射类型

      映射类型就是存储了对象与对象之间的映射关系的数据结构类型, Python中唯一的映射类型数据结构是字典( dictionary),字典中的每个元素都存在相应的名称(称为键)与之一一对应。字典相当于带有各自名称的元素组成的集合。与序列不同的是,字典中的元素并没有排列顺序。

    字典特点:

    • 字典创建在{ }中,例{key1:value1,,key2:value2,key3:value3,}
    • 元素是键值对是无序、可变的,但键不变且不允许重复,值可变;
    • 键-值成对出现;
    • 键不能重复;
    • 键不可更改,值可修改;
    • 键来索引值。

    4.集合类型

      除了上述基本数据结构类型外, Python还提供了一种称为集合的数据结构。集合当中的元素不能重复出现,即集合中的元素是相对唯一的,并且元素不存在排列顺序。由此可以看出, Python中的集合概念相当于数学中的集合概念。集合类型包括可变集合(set)与不可变集合( frozenset)。

    集合特点:

    • 集合创建在{ }中,例{1,2,3,’a’,’b’,’c’}
    • 集合是无序的;
    • 集合不能重复,不可更改。
  • 相关阅读:
    android常见错误-
    android常见错误-Unexpected namespace prefix "xmlns" found for tag LinearLayout
    从零学习IOS-VirtualBox-4.3.20-96997-Win
    android常见错误--INSTALL_FAILED_DEXOPT
    android常见错误-The container 'Android Dependencies' references non existing library
    从零开始学android开发-开发环境的选择
    传微软欲收购Xamarin:未来有望通过VS开发iOS和Android应用?
    SQLSERVER2008 18456错误
    windows 2003 远程登录时如何修改管理员密码
    python的web压力测试工具-pylot安装使用
  • 原文地址:https://www.cnblogs.com/xiaoguan-bky/p/11203974.html
Copyright © 2011-2022 走看看