python数据结构:数据类型

目录
  • 1.数据是什么?
  • 2.数据类型
    • 2.1内建原子数据类型
    • 2.2 内建集合数据类型
  • 3.集合数据类型的方法
    • 3.1 列表
    • 3.2 字符串
    • 3.3 元祖
    • 3.4 集合
    • 3.5 字典

1.数据是什么?

Python 以及其他所有面向对象编程语言中,类都是对数据的构成(状态)以及数据 能做什么(行为)的描述。由于类的使用者只能看到数据项的状态和行为,因此类与抽象数据类 型是相似的。在面向对象编程范式中,数据项被称作对象。一个对象就是类的一个实例。

2.数据类型

2.1内建原子数据类型

Python 有两大內建数据类实现了整数类型和浮点数类型,相应的 Python 类就是 int float。标准的数学运算符,即+、-、*、/以及**(幂),可以和能够改变运算优先级的括号一起使用。其他非常有用的运算符包括取余(取模)运算符%,以及整除运算符//。注意,当两个整数相除时,其结果是一个浮点数,而整除运算符截去小数部分,只返回商的整数部分。
Python 通过 bool 类实现对表达真值非常有用的布尔数据类型。布尔对象可能的状态值是 True 或者 False,布尔运算符有 and、or 以及 not。

其实这一章最想让大家知道的变量赋值的问题:

 theSum = 0

赋值语句 theSum = 0 会创建变量 theSum,并且令其保存指向数据对象 0 的引用。Python 会先计算赋值运算符右边的表达式,然后将指向该结果数据对象的引用赋给左 边的变量名。在本例中,由于 theSum 当前指向的数据是整数类型,因此该变量类型为整型。

如果数据发生了变化怎么办,比如:

theSum=True

这个时候变量的类型也会变成布尔类型。赋值语句改变了变量的引用,这体现了 Python 的动态特性。同样的变量 可以指向许多不同类型的数据。

2.2 内建集合数据类型

除了数值类和布尔类,python还有众多强大的内建集合类。我们将它们分为两类:

  • 有序集合:列表、字符串、元祖
  • 无需集合:集合、字典

说明一下,有序集合中有些方法是可以相互通用的,因为它们的性质很相似。无需集合也是一样,但是它们都是属于数据集合,会有一些大家公共的方法。

3.集合数据类型的方法

这一章节主要讲述列表、字符串、元祖、集合、字典各自的内置函数。
在这之前先介绍一下range函数。
range 是一个常见的 Python 函数,我们常把它与列表放在一起讨论。range 会生成一个代 表值序列的范围对象。使用 list 函数,能够以列表形式看到范围对象的值。
rang的一些用法。

range(10)#默认从0开始
#结果range(0, 10)
list(range(10))
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(5,10)
#结果range(5, 10)
list(range(5,10))
#[5, 6, 7, 8, 9]
list(range(5,10,2))
#[5, 7, 9]
list(range(10,1,-1))
#[10, 9, 8, 7, 6, 5, 4, 3, 2]

3.1 列表

列表是零个或多个指向 Python 数据对象的引用的有序集合,通过在方括号内以逗号分隔的一 系列值来表达。空列表就是[]。列表是异构的,这意味着其指向的数据对象不需要都是同一个类, 并且这一集合可以被赋值给一个变量。

举例:

#列表
mylist=[1,3,True,6.5]
#结果:[1, 3, True, 6.5]
mylist[0]
#结果 1
mylist[2]+mylist[1]
#结果 4
mylist[1:3]#只显示index为1,2
#结果 [3, True]
for i in mylist:
    print(i)
#结果 

True
6.5
mylist.append(9)
#[1, 3, True, 6.5, 9]
mylist.insert(1,2)#在index为1的位置插入2
#[1, 2, 3, True, 6.5, 9]
mylist.pop()#删除并返回最后一个数
# 结果 9
mylist.pop(1)#删除并返回index为1的数
#结果 2
mylist.sort()#排序
#[1, True, 3, 6.5]
mylist.reverse()#反转数组
#[6.5, 3, True, 1]
del mylist[1]#删除index为1的元素
mylist.index(1)# 返回元素为1的元素下标
mylist.insert(1,9)#在index位置插入元素9
mylist.count(9)#返回9在数组中出现的次数
mylist.remove(9)#移除元素9

3.2 字符串

字符串是零个或多个字母、数字和其他符号的有序集合。这些字母、数字和其他符号被称为 字符。常量字符串值通过引号(单引号或者双引号均可)与标识符进行区分。

举例:

myname="aaron"
#结果 aaron
myname.upper()#转化大写
#结果 'AARON'
myname.center(10)#填充空格
#结果为'  aaron   '
myname.find("r")
#结果为 2
myname.split("r")#分割子串,如果没有提供分隔字符,那么 split 方法将会寻找如制表符、换行符和空格等空白字符。
#结果为 ['aa', 'on']

总结:列表和字符串的主要区别在于,列表能够被修改,字符串则不能。列表的这一特性被称为可修改性。列表具有可修改性,字符串则不具有。例如,可以通过使用下标和赋值操作来修改列表中的一个元素,但是字符串不允许这一改动。

看一下:

3.3 元祖

元组与列表非常相似。它们的区别在于,元组和字符串一样是 不可修改的。元组通常写成由括号包含并且以逗号分隔的一系列值。与序列一样,元组允许之前 描述的任一操作。

举例:

mytuple=(2,True,4.96)
#(2, True, 4.96)
len(mytuple)
#结果 3
mytuple[2]
#结果 4.96

注意:元祖不可修改

3.4 集合

集合是由零个或多个不可修改的 Python 数据对象组成的无序集合。集不允许重复元素, 并且写成由花括号包含、以逗号分隔的一系列值。

举例:

myset={3,6,"dog","cat",False}
#{3, 6, False, 'cat', 'dog'}
len(myset)
#结果 5
False in myset #false是否在集合中
#结果 true
'pink' in myset
#结果 false

举例:

myset
#{3, 6, False, 'cat', 'dog'}
yourset={99,3,100}
#{3, 99, 100}
myset.union(yourset)#取并级
#{100, 3, 6, 99, False, 'cat', 'dog'}
myset | yourset#取并集
#{100, 3, 6, 99, False, 'cat', 'dog'}
myset.intersection(yourset)#取交集
#{3}
myset.difference(yourset)#取差集
#{6, False, 'cat', 'dog'}
myset-yourset#取差集
#{6, False, 'cat', 'dog'}
{99,100}.issubset(yourset)#判断是否为子集
#True
{99,100}<=yourset#判断是否为子集
#True
myset.add(101)
#{101, 3, 6, False, 'cat', 'dog'}
myset.remove(101)#移除元素
#{3, 6, False, 'cat', 'dog'}
myset.pop()#随机移除元素(这里移除了false)
#False
myset.clear()#清空集合
#set()

3.5 字典

字典是无序结构,由相关的元素对构成,其中每对元素都由一个键和一个值组成。这种键–值对通常写成键:值的形式。字典由花括号包含的一系列以逗号分隔的键–值对表达。

举例:

mydict={"name":"aaron","sex":"man"}
#{'name': 'aaron', 'sex': 'man'}
mydict["name"]
#'aaron'
mydict["old"]=18#添加一对key- value
#{'name': 'aaron', 'sex': 'man', 'old': 18}
len(mydict)
#3
mydict.get("sex")
#'man'
mydict.get("class","不存在")#如果前面的不存在,就返回第二个
#'不存在'

参考资料:

  • 《python数据结构与算法》
  • 《大话数据结构》

到此这篇关于python数据结构:数据类型的文章就介绍到这了,更多相关python数据类型内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 学好python基本数据类型

    目录 一.基本用法 1.注释 2.输出 3.变量 4.命名规范 5.变量的定义方式 二.python的数据类型 1.字符串类型 2.数字类型 3.List列表类型 4.tuple 元组类型的定义 5.Dict字典类型 6.set集合类型 7.数据类型转换 8.自动类型转换 9.强制类型转换 一.基本用法 1.注释 Python中,#+语句 即为一条注释,也可以用 '''注释块 ''' #人生苦短,我用Python 2.输出 Python中,print()为输出函数 print("Hello Wo

  • Python从入门到实战之数据结构篇

    前言 我是栗子--专为小白准备<Python从入门到实战>内容. 这不是上一期刚讲完循环判断,还给大家出了很多新手的题目,边学边练习才有效果嘛. 时隔几天,大家都吼完了叭~实在没写完的慢慢复习,我更新文章也挺慢的!哈哈哈哈 今天想一想:要学数据结构啦~ 一.Python有那几种数据结构? Python 有四种数据结构,分别是:列表.字典.元组,集合.每种数据结构都有自己的特点,并且都有着独到的用处.为了避免过早地陷入细枝末节. 我们先从整体上来认识一下这四种数据结构:从最容易识别的特征上来说,

  • Python数据结构之列表与元组详解

    目录 Python 列表(list): 1.序列介绍: 2.列表的概述: 3.创建一个列表 4.列表的索引 5.列表的分片 6.列表的分片赋值 7.循环遍历列表 8.查找元素与计数 9.列表增加元素: 10.列表删除元素: 11.列表排序 Python 元组(tuple): 1.为什么要将元组设计成为不可变序列 2.创建元组 3.元组的遍历 4.元组的内置函数 Python 列表(list): 1.序列介绍:   序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置

  • python六种基本数据类型及常用函数展示

    目录 number(数字) Number类型常用的函数 随机数 import random string(字符串) 字符串常用的函数 list (列表) 列表的常用函数 set(集合) tuple (元组) dictionary(字典) 字典常用函数 总结 number(数字) int(整型), float(浮点型), bool, complex(复数类型) 四种基本类型,用于存储数值 类型转换:int(),float()- 内置函数 type(), 用以查询变量的类型 数学运算 :+.-.*

  • Python数据结构详细

    目录 1. 关于列表更多的内容 1.1. 把列表当作堆栈使用 1.2. 把列表当作队列使用 1.3. 列表推导式 1.4. 嵌套的列表推导式 2. del 语句 3. 元组和序列 4. 集合 6. 循环技巧 7. 深入条件控制 8. 比较序列和其它类型 1. 关于列表更多的内容 Python 的列表数据类型包含更多的方法.这里是所有的列表对象方法: list.``append(x) 把一个元素添加到列表的结尾,相当于 a[len(a):] = [x] list.``extend(L) 将一个给定

  • Python全栈之基本数据类型

    目录 1. number类型 1.1 int整型 1.2 float浮点型(小数) 1.3 bool布尔型 1.4 复数类型 2. 字符串类型 3. 列表_元组_字符串 3.1 列表类型 3.2 元组类型 3.3 字符串类型 4. 集合_字典 4.1 集合类型 4.2 字典类型 5. 变量的缓存机制 6. 小练习 总结 1. number类型 Number 数字类型 (int float bool complex) 1.1 int整型 # int 整型 (正整型 0 负整型) intvar =

  • python的多元数据类型(上)

    目录 什么是列表list 1.声明一个列表list 2.列表list支持什么数据类型 3.列表list的基本特性 总结 什么是列表list 列表是python中最基本的数据结构,列表中的每个元素都分配一个数字--即当前数据的位置,或索引,第一个索引是0第二个索引是1,依次类推 *列表是个"筐"什么也可以往里装.数据一多了就形成了结构.列表list是数据集合的一种形式 #列表是一个有序的.可变的数据结构/类型 1.声明一个列表list 方法一: 空值创建 list_data = list

  • python的多元数据类型(下)

    目录 元组 1.什么是元组tuple 2.元组tuple支持什么数据类型 3.元组tuple的基本特征 4.如何声明一个元组tuple 5.玩转元组tuple 字典 总结 元组 1.什么是元组tuple 元组tuple像是一个list,但是它内部的值不可被修改.元组是一个有序的.不可变数据结构/类型 注意列表和元组之间一个有趣的关系: 列表 >> 元组 为加锁 元组 >> 列表 为解锁 支持元组和列表互相转换 元组是一个保险柜,数据进入就是安全的 列表和元组的对比: 为什么需要有元

  • python数据结构:数据类型

    目录 1.数据是什么? 2.数据类型 2.1内建原子数据类型 2.2 内建集合数据类型 3.集合数据类型的方法 3.1 列表 3.2 字符串 3.3 元祖 3.4 集合 3.5 字典 1.数据是什么? 在 Python 以及其他所有面向对象编程语言中,类都是对数据的构成(状态)以及数据 能做什么(行为)的描述.由于类的使用者只能看到数据项的状态和行为,因此类与抽象数据类 型是相似的.在面向对象编程范式中,数据项被称作对象.一个对象就是类的一个实例. 2.数据类型 2.1内建原子数据类型 Pyth

  • python数据结构之面向对象

    目录 1. 面向对象编程 2. 构建类 3. 继承 3.1 继承案例 python数据结构:数据类型.  python数据结构输入输出及控制和异常. 今天我们来学习面向对象编程,面向对象这种编程方式非常重要,我们以后学习到的栈.队列.链表都是通过面向对象的方式实现的. 1. 面向对象编程 定义:面向对象是按照人们客观世界的系统思维方式,采用基于对象(实体)的概念建立模型 ,模拟客观世界分析,设计,实现软件的办法.通过面向对象的理念使计算机软件系统能与现实世界中的系统的一一对应. 听到这很多同学应

  • python数据结构之递归方法讲解

    目录 1.递归概念 2. 递归三原则 2.1 实现任意进制的数据转换 今天我们来学习python中最为重要的内容之递归,对以往内容感兴趣的同学可以查看下面: python数据类型: python数据结构:数据类型. python的输入输出: python数据结构之输入输出.控制和异常. python面向对象: python数据结构之面向对象. python算法分析: python数据结构算法分析. python数据结构之栈.队列和双端队列 递归是在进行重复性工作中经常考到的问题,非常值得学习.

  • python数据结构之栈、队列及双端队列

    目录 1.线性数据结构的定义 2.栈 2.1 栈的定义 2.2 栈的数据类型 2.3 用python实现栈 2.4 栈的应用 3. 队列 3.1 队列的定义 3.2 队列抽象数据类型 3.3 用python实现队列 3.3 队列的应用 4. 双端队列 4.1 双端队列的定义 4.2 双端队列抽象数据类型 4.3 用python实现双端队列 4.3 双端队列的应用 5.链表 5.1 链表定义 5.2 用python实现链表 前文学习: python数据类型: python数据结构:数据类型. py

  • python数据结构算法分析

    目录 1.算法分析的定义 2. 大O记法 3. 不同算法的大O记法 3.1 清点法 3.2 排序法 3.3 蛮力法 3.4 计数法 4. 列表和字典操作的复杂度 4.1 列表 4.2 字典 前文学习: python数据类型: python数据结构:数据类型. python的输入输出: python数据结构输入输出及控制和异常. python面向对象: python数据结构面向对象. 今天我们来学习的内容是面试题中都避免不小了的问题,就是算法分析了,什么是算法分析,算法分析是用来分析一个算法的好坏

  • python数据结构输入输出及控制和异常

    目录 1. 输入 input 2. 输出 print 2.1 普通输出 2.2 格式化输出 3. 控制语句 4. 异常处理 前言: python数据类型: python数据结构之数据类型. 今天我们主要来介绍一些内置函数,比如输入输出,控制,和异常的用法,尤其是输出和控制,用的太多了,写算法题,输出数据格式问题,对以后都会很有帮助. 1. 输入 input 程序经常需要与用户进行交互,以获得数据或者提供某种结果.Python 提供了一个函数,它使得我们可以要求用户输入数据并且返回一个字 符串的引

  • python数据结构之搜索讲解

    目录 1. 普通搜索 2. 顺序搜索 1.1 无序下的顺序查找 1.2 有序下的顺序查找 2.二分查找 3.散列查找 3.1 几种散列函数 3.2 处理散列表冲突 3.3 散列表的实现(加1重复) 4.参考资料 往期学习: python数据类型: python数据结构:数据类型. python的输入输出: python数据结构之输入输出及控制和异常. python面向对象: python数据结构面向对象. python算法分析: python数据结构之算法分析. python栈.队列和双端队列:

  • Python数据结构列表

    目录 1 序列 2 列表 2.1 列表函数 2.2 列表排序 2.3 解析列表 正则小练习:匹配出以下字符串所有url, import re def find_url(sentence, show_urls=None, delete_urls=None): r = re.compile( r'(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([

随机推荐