浅析Python语言自带的数据结构有哪些

Python作为一种脚本语言,其要求强制缩进,使其易读、美观,它的数据类型可以实现自动转换,而不需要像C、Java那样给变量定义数据类型,使其编写非常方便简单,所以广受大家的欢迎。

现如今,Python已经广泛的应用于数据分析、数据挖掘、机器学习等众多科学计算领域。所以既然涉及到科学计算,深入了解Python原生提供的数据结构是很有必要的,这样才能在数据的海洋中游刃有余、得心应手。本文便以此展开,做一个归纳整理,方便收藏。

Python

一、序列结构

首先介绍的数据结构是序列结构,所谓序列,也就是元素顺序是很重要的,不同元素顺序的序列是不同的序列。Python中含有六种内建的序列结构,分别是list、tuple、string、unicode、buffer、xrange。

1.1、list(列表)

list,列表是一种序列,可以看做是一种数组,但不同的于其它语言的是,Python列表中的元素可以是任何数据类型,诸如,数字、字符串等等。

下面为创建list结构的几种方式:

//1.通过中括号括起已知的元素创建list
mylist = ['orange', 'apple', 1,2,3.14];
//2.通过中括号创建空list,然后用append()追加动态元素
mylist = [];
mylist.append('orange');
//3.通过list()方法创建空list
mylist = list();

选取list元素的方法:

//通过中括号加下对应下标选取,下标从0开始,-1为倒数第一个元素,以此类推
mylist[0];
mylist[-1];

切片是Python中序列结构独有的一种操作,意思是从序列中选取一个子序列,凡是序列均可切片,list是序列,所以list可以切片。切片方法:

//通过[begin:end]方式完成切片
mylist = [1,2,3,4,5];
mylist[0:2]; //生成的序列为[1,2,3] 

list常用方法:

  • list.append(x),在列表的末尾添加一个元素。
  • list.insert(i, x),在给定的位置插入一个元素,第一个参数是要插入的元素的索引。
  • list.remove(x),移除列表中第一个值为 x 的元素,如果没有这样的元素,则抛出异常。
  • list.clear(),删除列表中所有的元素。
  • list.index(x),返回列表中第一个值为 x 的元素的从零开始的索引,如果没有这样的元素,则抛出异常。
  • list.count(x),返回元素 x 在列表中出现的次数。
  • list.reverse(),反转列表中的元素。

机器学习

1.2、tuple(元组)

tuple,元组和列表一样,都以看做是一种数组,元素可以是任何数据类型,甚至可以嵌套。唯一的区别是,元组内的元素一旦创建,是不可修改的,也不可追加。并且元组使用小括号创建,同样元组可切片,切片方法同list。

//1.通过小括号括起已知的元素创建tuple
mytuple = (1, 3, 'hello!')
//2.不可以用append()往tuple追加,因为tuple一旦创建,不可变更 

获取tuple中的元素:

//和列表一样,通过中括号加下对应下标选取,下标从0开始,-1为倒数第一个元素,以此类推
mytuple[0];
mytuple[-1]; 

1.3、string,unicode,buffer,xrange

这四个也是序列,做科学计算由于不太常用,不做太多介绍。

string可以看成是少量单个字符构成的list,如:

mystring = 'orange';
mylist = ['o','r','a','n','g','e']; 

由于string也是序列,所以也可以切片,切片就当做单个字符构成的list切片即可,很多原理类似,不做过多介绍。

unicode和string类似,不过可以支持原生unicode编码的序列,如\\u4f60\\u597d。

buffer可以看成大量字符构成的list。

xrange可以看成纯数字构成的list。

科学计算

二、散列结构

所谓散列结构,区别于上述序列结构,散列结构中,元素顺序是不重要的,顺序不同的散列,还是同一个散列。散列结构有set、dict。

2.1、set(集合)

set,集合,集合是由不重复元素组成的无序的集,重点是不重复,和数学中的集合类似。无序是散列结构的特点,集合是一种散列结构,所以集合也有无序的特点。

创建set的方法:

//和list很类似,可对应参考
//1.通过大括号括起已知的元素创建set
myset = {'red','blue',2.71};
//2.通过set()方法创建空set,注意不能用{}创建空set,这样创建的是空dict
//3.然后用add()添加动态元素,注意不是append
myset = set();
myset.add('yellow');
Python的set集合可以支持并集,交集,差集,对称差等数学运算:

//创建集合a
a = set('abracadabra');
//创建集合b
b = set('alacazam');
------------------
print(a)
//结果:{'a', 'r', 'b', 'c', 'd'}
------------------
print(a - b); //差集
//结果:{'r', 'd', 'b'}
------------------
print(a | b); //并集
//结果:{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
------------------
print(a & b); //交集
//结果:{'a', 'c'}
------------------
print(a ^ b); //对称差
//结果:{'r', 'd', 'b', 'm', 'z', 'l'} 

set常用方法:

  • set.remove(x),移除集合中值为 x 的元素,如果没有这样的元素,则抛出异常。
  • set.isdisjoint(set2),判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
  • set.issubset(set2),判断集合set是否包含于set2
  • set.issuperset(set2),判断集合set是否包含set2,issubset与issuperset是一对互逆操作。

2.2、dict(字典)

dict,字典,字典由键值对组成,具有唯一性,可变性。字典是可变对象但字典的键的唯一的,是不可变对象。理解字典的最好方式,就是将它看做是一个 键 : 值对的集合。

创建dict的方法:

//1.通过大括号括起键值对创建dict
mydict = {'name':'tom','age':'24'};
//2.通过dict()方法创建dict
mydict = dict(name = 'tom',age = 24);
//3.通过大括号创建空dict,然后通过中括号添加键值对
mydict = {};
mydict['tel'] = '1300000000'; 

获取dict中的元素:

//需要已经知道键的名称,否则无法获取,除非遍历
mydict.get('tel'); 

dict常用方法:

  • dict.copy(),拷贝出一个新的字典。
  • dict.setdefault({'sex':'man'}),有则查,无则增。
  • dict.update({'sex':'male'}),有则改,无则增。
  • dict.pop('tel'),指定删除,参数必须要有需要删除的键。
  • dict.clear(),清空字典。
  • dict.keys(),查询字典中所有的键。
  • dict.values(),查询字典中所有的值。
  • dict.items(),查询字典中所有的键值对。

以上即为Python自带的数据结构,共分为序列结构和散列结构两大类,序列结构有list、tuple、string、unicode、buffer、xrange,散列结构有set、dict。

总结

以上所述是小编给大家介绍的浅析Python语言自带的数据结构有哪些,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • 栈和队列数据结构的基本概念及其相关的Python实现

    先来回顾一下栈和队列的基本概念: 相同点:从"数据结构"的角度看,它们都是线性结构,即数据元素之间的关系相同. 不同点:栈(Stack)是限定只能在表的一端进行插入和删除操作的线性表. 队列(Queue)是限定只能在表的一端进行插入和在另一端进行删除操作的线性表.它们是完全不同的数据类型.除了它们各自的基本操作集不同外,主要区别是对插入和删除操作的"限定". 栈必须按"后进先出"的规则进行操作:比如说,小学老师批改学生的作业,如果不打乱作业本的顺

  • Python实现的数据结构与算法之链表详解

    本文实例讲述了Python实现的数据结构与算法之链表.分享给大家供大家参考.具体分析如下: 一.概述 链表(linked list)是一组数据项的集合,其中每个数据项都是一个节点的一部分,每个节点还包含指向下一个节点的链接. 根据结构的不同,链表可以分为单向链表.单向循环链表.双向链表.双向循环链表等.其中,单向链表和单向循环链表的结构如下图所示: 二.ADT 这里只考虑单向循环链表ADT,其他类型的链表ADT大同小异.单向循环链表ADT(抽象数据类型)一般提供以下接口: ① SinCycLin

  • Python实现列表转换成字典数据结构的方法

    本文实例讲述了Python实现列表转换成字典数据结构的方法.分享给大家供大家参考,具体如下: ''' [ {'symbol': 101, 'sort': 1, 'name': 'aaaa'}, {'symbol': 102, 'sort': 2, 'name': 'bbbb'}, {'symbol': 103, 'sort': 3, 'name': 'cccc'}, {'symbol': 104, 'sort': 4, 'name': 'dddd'}, {'symbol': 105, 'sort

  • python数据结构之图的实现方法

    本文实例讲述了python数据结构之图的实现方法.分享给大家供大家参考.具体如下: 下面简要的介绍下: 比如有这么一张图: A -> B     A -> C     B -> C     B -> D     C -> D     D -> C     E -> F     F -> C 可以用字典和列表来构建 graph = {'A': ['B', 'C'], 'B': ['C', 'D'], 'C': ['D'], 'D': ['C'], 'E': [

  • 详解常用查找数据结构及算法(Python实现)

    一.基本概念 查找(Searching)就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录). 查找表(Search Table):由同一类型的数据元素(或记录)构成的集合 关键字(Key):数据元素中某个数据项的值,又称为键值. 主键(Primary Key):可唯一地标识某个数据元素或记录的关键字. 查找表按照操作方式可分为: 静态查找表(Static Search Table):只做查找操作的查找表.它的主要操作是: 查询某个"特定的"数据元素是否在表中

  • python数据结构之图深度优先和广度优先实例详解

    本文实例讲述了python数据结构之图深度优先和广度优先用法.分享给大家供大家参考.具体如下: 首先有一个概念:回溯 回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标.但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为"回溯点". 深度优先算法: (1)访问初始顶点v并标记顶点v已访问. (2)查找顶点v的第一个邻接顶点w. (3)若顶点v的邻接顶点w存在,则继续执行:否则回

  • Python实现的数据结构与算法之快速排序详解

    本文实例讲述了Python实现的数据结构与算法之快速排序.分享给大家供大家参考.具体分析如下: 一.概述 快速排序(quick sort)是一种分治排序算法.该算法首先 选取 一个划分元素(partition element,有时又称为pivot):接着重排列表将其 划分 为三个部分:left(小于划分元素pivot的部分).划分元素pivot.right(大于划分元素pivot的部分),此时,划分元素pivot已经在列表的最终位置上:然后分别对left和right两个部分进行 递归排序. 其中

  • 浅析Python语言自带的数据结构有哪些

    Python作为一种脚本语言,其要求强制缩进,使其易读.美观,它的数据类型可以实现自动转换,而不需要像C.Java那样给变量定义数据类型,使其编写非常方便简单,所以广受大家的欢迎. 现如今,Python已经广泛的应用于数据分析.数据挖掘.机器学习等众多科学计算领域.所以既然涉及到科学计算,深入了解Python原生提供的数据结构是很有必要的,这样才能在数据的海洋中游刃有余.得心应手.本文便以此展开,做一个归纳整理,方便收藏. Python 一.序列结构 首先介绍的数据结构是序列结构,所谓序列,也就

  • 浅析Python自带性能强悍的标准库itertools

    目录 前言 无限迭代 有限迭代 排列组合迭代 前言   可迭代对象就像密闭容器里的水,有货倒不出 itertools是python内置的标准模块,提供了很多简洁又高效的专用功能,使用得当能够极大的简化代码行数,同时所有方法都是实现了生成器函数,这就意味着极大的节省内存. itertools提供的功能主要分为三大块,以最新版本的3.10为例: 对可迭代对象无限迭代,无限输出 对可迭代对象有限迭代 对可迭代对象排列组合 方法如下: 导入包 >>> from iteratortools imp

  • 带你了解Python语言的神奇世界

    目录 一.特点 二.语法 三.表达式 四.变量 五.缩进 六.数据类型 七.Python值得学习嘛? Python是世界上最流行的解释型编程语言之一. 由 Guido van Rossum 设计,作为"ABC"编程语言的继承者",于 1991 年首次发布.它是一种高级通用语言,其设计理念是通过使用缩进来强调代码的可读性.Python 的语言结构旨在帮助程序员为小型和大型项目编写逻辑代码. Python 是一种面向对象.解释型.弱类型的脚本语言,它也是一种功能强大而完善的通用型

  • 浅析python中5个带key的内置函数

    目录 1.max取最大值函数 2.min取最小值函数 3.filter过滤函数 实例1 实例2 4.map序列映射函数 实例1 实例2 5.sorted序列排序函数 (1) cmp参数 (2)key参数 (3)reverse参数 1.max取最大值函数 max() 方法返回给定参数的最大值,参数可以为序列. lis = [1,2,3,-4] print(max(lis)) #返回lis列表中的最大值 '''结果: 3 ''' print(max(lis,key=abs)) #key参数指向绝对值

  • 浅析Python字符串索引、切片、格式化

    目录 1 字符串索引 1.1 循环索引字符 2 字符使用 2.1 字符串运算 3 字符串切片 3.1 切片方法 4 字符串格式化 除了数字,Python中最常见的数据类型就是字符串,无论那种编程语言,字符串无处不在.例如,从用户哪里读取字符串,并将字符串打印到屏幕显示出来. 字符串是一种数据结构,这让我们有机会学习索引和切片--用于从字符串中提取子串的方法. 1 字符串索引 在Python语法支持中,我们简单的阐述过字符串的使用,现在我们看看python程序在处理字符串时,如何对其进行索引,打印

  • Python语言的变量认识及操作方法

    今天我给大家介绍的是python中的Number变量,与c++,java有些不同,下面让来为大家介绍: 在python中是不用声明变量类型的,不过在使用变量前需要对其赋值,没有值得变量是没有意义的,编译器也不会通过 一 : 整型-----int: int 在python中的用法与c++大致是一样的: a=12 print a 打印的结果就是:12 在这里我要首先向大家介绍几个函数 type():返回括号中的数据类型 a='hello' print type(a) >>>><t

  • python语言基本语句用法总结

    python语句与语法 1.python简单语句的基本介绍 >>> while True: #简单的while循环 ... reply = input('Enter text:') #调用了Input,将输入传参给reply ... if reply == 'stop': break #如果输入的是stop就退出循环 ... print(reply.upper()) #如果输入的不是stop就一直将输入的转换为大写字母 ... Enter text:abc #这是第一个输入abc,看到下

  • 浅析Python requests 模块

    Python requests 模块 requests 模块是我们使用的 python爬虫 模块 可以完成市场进80%的爬虫需求. 安装 pip install requests 使用 requests模块代码编写的流程: - 指定url - 发起请求 - 获取响应对象中的数据 - 持久化存储 -------------案例------------------------- import requests # 指定url url="https://www.sogou.com/" # 发

  • 浅析Python的对象拷贝和内存布局

    目录 前言 Python 对象的内存布局 牛刀小试 查看对象的内存地址 copy模块 可变和不可变对象与对象拷贝 代码片段分析 撕开 Python 对象的神秘面纱 总结 前言 在本篇文章当中主要给大家介绍 python 当中的拷贝问题,话不多说我们直接看代码,你知道下面一些程序片段的输出结果吗? a = [1, 2, 3, 4] b = a print(f"{a = } \t|\t {b = }") a[0] = 100 print(f"{a = } \t|\t {b = }

  • 浅析Python中的for 循环

    Python for 和其他语言一样,也可以用来循环遍历对象,本文章向大家介绍Python for 循环的使用方法和实例,需要的朋友可与参考一下. 一个循环是一个结构,导致第一个程序要重复一定次数.重复不断循环的条件仍是如此.当条件变为假,循环结束和程序的控制传递给后面的语句循环. for循环: 在Python for循环遍历序列的任何物品,如一个列表或一个字符串,有能力. for循环语法是: for iterating_var in sequence: statements(s) 如果一个序列

随机推荐