组合数据类型

  • 什么是组合数据类型?
  • 什么是序列类型?
  • 序列简解
  • 索引方式
  • 序列的通用操作符和函数
  • 字符串
  • 列表
  • 元组
  • 集合类型
  • 集合(set)
  • 映射类型
  • 字典



三岁和你一起学编程,最白的白话一语道破!
你还在为字符串,元组,列表,集合,字典,傻傻分不清楚而苦恼吗?
一文道破 ,其中的小咪咪!

什么是组合数据类型?

  • 解释:组合数据类型为多个同类型或不同类型数据提供单一表示。
  • 白话:就是在数据类型中存储不同类型的值通过该类型的定义进行下一步计算等

分类:序列类型,集合类型,映射类型

至于里面的关系嘛,让我细细道来!

emmm,好像讲不清楚,算了,上图

python组合数配对 组合数 python_列表


让我们开始分类讲解

什么是序列类型?

序列类型是一维向量,元素之间存在先后关系,可以通过序号访问。
 其基本思想和表达方式是源于数学概念。

例如:

  • n个元素的序列可以表达为
  • S = s0 ,s1 ,s2,…,s(n-1)
    通过下标即可表达对应的值
序列简解
索引方式

序列靠索引读取,那么到底怎么读呢?
来讲不清,记不清的看图/豪横

python组合数配对 组合数 python_python_02

悄咪咪的,图丑勿吐槽,图如小编,人丑心善,有用即可!!!

  • 正向:从第一个 “0” 开始往后依次添加,最后一个为“n-1”(n为总个数)
    那么不知道长度又要从最后取怎么办
    他来了,他踩着知识点来了
  • 反向:最后一个为-1,往前依次减一

提问:如果里面是数组、元组、字典等镶嵌的怎么办???
小朋友你是否有很多问号?????
这么复杂的问题,我怎么会知道
不管是谁,不管肚子里面有多少“墨水”都是一个!
难道他肚子里面有18胞胎他就有19个人,不存在的!!!

python组合数配对 组合数 python_字符串_03

序列的通用操作符和函数

操 作 符

描 述

x in s

x 属于 s ,返回 True,否则返回 False

x not in s

如果 x 不属于 s ,返回 True,否则返回 False

s + t

连接 s 和 t

s* n 或 n* s

将序列 s 复制 n 次

s[i]

索引返回序列 i 对应的值

s[i:j]

分片,返回 s 第 i 到 j 所对应的元素子列(前闭后开,不包括 j )

s[i:j:k]

步骤分片,以 k 为步长返回 s 第 i 到 j 的子列(不包括 j )

len(s)

序列 s 的元素个数(长度)

min(s)

序列 s 的最小元素

max(s)

序列 s 的最大元素

s.index(x[,i[,j]])

序列 s 中从 i 开始到 j 位置中第一次出现元素 x 的位置

s.count(x)

序列 s 中出现 x 的总位数

emmm这个举栗子嘛,我们就放到各个分类中去

字符串


  • 字符串(str)是单一字符的有序组合
  • 可以说是基本数据类型
  • 字符串可以用单引号,双引号表达单行的字符串使用三引号可以跨行(多行)的字符串
    具体方式见上方链接
列表

列表(list)是可以修改数据项的序列类型,可以灵活使用
列表用[ ]进行表示,也可以是空列表,可以添加,删除,排序等操作
具体的见上方链接(内部有详细介绍和举例解释)

元组

  • 元组是特殊的序列类型
    原因是元组一旦创建就无法修改(不是朱一旦的一旦)
  • 元组使用( )来表示
>>> type(()) #测试( ) 的类型
<class 'tuple'> #为元组(空元组)
>>> type((1))# (1)的类型
<class 'int'> #为整型
>>> type((1,))#(1,)的类型
<class 'tuple'>#元组
>>> type((1,2))#(1,2)的类型
<class 'tuple'>#元组
以上栗子说明
( ) 为空元组
(1) 不属于元组
(1,)、(1,2)都是元组

元组中只有一个元素在元素后加上逗号,否则格式会出问题

>>> a = 1, 'ha', 4, (1, 2, 3) #定义(创建)一个元组
>>> a
(1, 'ha', 4, (1, 2, 3))
>>> b = 3, 0x1389, a
>>> b
(3, 5001, (1, 'ha', 4, (1, 2, 3)))
#元组元素读取
>>> a[2]#读取a的第2号元素
4
>>> b[2][2]
4
>>> b[2][3]
(1, 2, 3)
>>> b[2][3][0]
1

元组与其他列表一样可以嵌套可以循环
具体见上方链接元组专题(完善ing)

集合类型

集合(set)

该集合与数学集合差不多

  • 无序性
  • 单一性(不可重复)
  • 数据类型固定(整型,浮点型,字符串,元组)

注:

1、 集合不能够切片、索引
2、集合和字典一样用 {} 括起来但是完全不一样
3、集合没有键值对
4、集合内的值不重复
5、集合内的顺序不绝对
>>> w = set('python')#无序
>>> w
{'t', 'h', 'n', 'p', 'o', 'y'}
>>> c = set((1,3,'py'))
>>> c
{1, 3, 'py'}

集合还有相关的操作方式

  • 交集
  • 并集
  • 补集
  • 差集
    等等,具体的方法,示例见上方详解

映射类型

映射类型就是“键-值”数据项的组合,每一个元素就是一个键值对

字典

字典是包含0个或多个键值对的集合,没有长度限制,根据键索引值的内容
基本形式:
{<键1>:<值1>, <键2>:<值2>, <键3>:<值3>, …}

  • 无序
  • 键不可重复(重复的后者直接替代前者)
    整个字典使用极为灵活,使用也很“方便”,但是不是一言两语可以说清
    举例说明更是得好久,点击上方的链接查看详情每个点都有示例!

组合数据类型就告一段落,详细的还需跳转,各个使用都不复杂,弄懂挺简单但是熟练上手还得多加练习,奥利给!