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’}
- 集合是无序的;
- 集合不能重复,不可更改。
Python 数据结构理解分享的更多相关文章
- Python数据结构与算法--List和Dictionaries
Lists 当实现 list 的数据结构的时候Python 的设计者有很多的选择. 每一个选择都有可能影响着 list 操作执行的快慢. 当然他们也试图优化一些不常见的操作. 但是当权衡的时候,它们还 ...
- Python数据结构与算法--算法分析
在计算机科学中,算法分析(Analysis of algorithm)是分析执行一个给定算法需要消耗的计算资源数量(例如计算时间,存储器使用等)的过程.算法的效率或复杂度在理论上表示为一个函数.其定义 ...
- Python - 数据结构 - 第十五天
Python 数据结构 本章节我们主要结合前面所学的知识点来介绍Python数据结构. 列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和 ...
- python数据结构之图的实现方法
python数据结构之图的实现方法 本文实例讲述了python数据结构之图的实现方法.分享给大家供大家参考.具体如下: 下面简要的介绍下: 比如有这么一张图: A -> B A ...
- Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
本文实例讲述了Python数据结构与算法之图的最短路径(Dijkstra算法).分享给大家供大家参考,具体如下: # coding:utf-8 # Dijkstra算法--通过边实现松弛 # 指定一个 ...
- Python数据结构与算法之图的广度优先与深度优先搜索算法示例
本文实例讲述了Python数据结构与算法之图的广度优先与深度优先搜索算法.分享给大家供大家参考,具体如下: 根据维基百科的伪代码实现: 广度优先BFS: 使用队列,集合 标记初始结点已被发现,放入队列 ...
- python数据结构之图深度优先和广度优先实例详解
本文实例讲述了python数据结构之图深度优先和广度优先用法.分享给大家供大家参考.具体如下: 首先有一个概念:回溯 回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标.但当探索到 ...
- python数据结构与算法
最近忙着准备各种笔试的东西,主要看什么数据结构啊,算法啦,balahbalah啊,以前一直就没看过这些,就挑了本简单的<啊哈算法>入门,不过里面的数据结构和算法都是用C语言写的,而自己对p ...
- python数据结构与算法——链表
具体的数据结构可以参考下面的这两篇博客: python 数据结构之单链表的实现: http://www.cnblogs.com/yupeng/p/3413763.html python 数据结构之双向 ...
随机推荐
- EasyTrader踩坑之旅(三)
快速阅读 用THSTrader 调试同花顺自动下单的过程 . 主要原理是利用python函数pywinauto 自动获取同花顺上相应控件的值,进行模拟自动化的操作,不得不说python函数库的强大 ...
- ActiveMq 本地安装及启动(Windows)
首先下载MQ的安装包 http://activemq.apache.org/download.html 1.点击最新版本的ActiveMQ的 2.这里有窗户版本和Linux的的版本,这里我们选择窗口版 ...
- "笨方法"学习CNN图像识别(二)—— tfrecord格式高效读取数据
原文地址:https://finthon.com/learn-cnn-two-tfrecord-read-data/-- 全文阅读5分钟 -- 在本文中,你将学习到以下内容: 将图片数据制作成tfre ...
- MD5与SHA1
一.MD5 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于 ...
- 使用 ASP.NET Core 创建 Web API及链接sqlserver数据库
创建 Web API https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.0& ...
- Flutter BottomNavigationBar 组件
BottomNavigationBar 是底部导航条,可以让我们定义底部 Tab 切换,bottomNavigationBar是 Scaffold 组件的参数. BottomNavigationBar ...
- pytorch模型存储的两种方式
1.保存整个网络结构信息和模型参数信息: torch.save(model_object, './model.pth') 直接加载即可使用: model = torch.load('./model.p ...
- CharUtil
package com.opslab.util; import java.io.UnsupportedEncodingException; /** * Various character and ch ...
- 123457123456#0#----com.ppGame.ChengYu43--前拼后广--成语caicaicai_pp
com.ppGame.ChengYu43--前拼后广--成语caicaicai_pp
- 【kubernetes secret 和 aws ecr helper】kubernetes从docker拉取image,kubernetes docker私服认证(argo docker私服认证),no basic auth credentials错误解决
aws ecr helper: https://aws.amazon.com/blogs/compute/authenticating-amazon-ecr-repositories-for-dock ...