Python学习笔记 十二 (组合数据类型)

Python学习笔记 十二 (组合数据类型)

在Python中除了基本数据类型之外还有组合数据类型,组合数据类型在编程中有着很大的作用,下面我对我所学到的组合数据类型进行简单的总结,希望能对你我有益。

目录

  • 集合类型的介绍
  • 序列类型的介绍
  • 字典类型的介绍
一、集合类型的介绍

Python中的集合数据类型和数学中的集合数据类型相同,元素之间无序且每个元素之间唯一不存在相同元素,因此集合元素不可更改以及不允许使用可变数据类型当做元素。

  • 集合使用 { } 或 set()创建,元素之间使用,分隔,空集合使用set()创建,不能使用 { } 表示(和字典的创建有关)。
>>> {1,2,3,4}
{1, 2, 3, 4}
>>> set("1234")
{'3', '2', '1', '4'}
>>> 
  • 集合由于和数学中的集合相同,因此也可以进行交、并、差、补操作。
    a | b —— 并
    a & b —— 交
    a - b —— 差
    a ^ b —— 补
    a <= b 或 a < b —— 判断子集关系
    a >=b 或 a > b —— 判断包含关系
>>> a = {1,2,3,4}
>>> b = {1,2,3,4,5}
>>> b-a
{5}
>>> 
  • 和数值操作符类似,集合之间也有赋值增强操作符。
    a |= b —— a和b执行完并操作后将结果更新给a
    a &= b —— a和b执行完交操作后将结果更新给a
    a -= b —— a和b执行完减操作后将结果更新给a
    a ^= b —— a和b执行完补操作后将结果更新给a

  • 集合的处理方法

方法名大致作用
S.add(x)如果x不在集合S中,则将x加入到集合S中
S.discard(x)丢弃x,若集合S中没有x,不报错
S.remove(x)移除x,若集合S中没有x,发生KeyError异常
S.clear()移除S中的所有元素
S.pop()随机取出一个集合S中的值
S.copy()返回一个集合S的副本
len(s)返回集合S中的元素个数
x in S判断x是否在集合S中,返回true 或 flase
s not in S判断x是否不在集合S中,返回true 或 flase
set(x)将其他类型的数据转化为集合类型
  • 集合类型用于数据去重
    由于集合类型要求元素之间唯一确定不能重复,这个性质可以用于数据去重。
>>> a = [1,1,2,2,3,3]
>>> set(a)
{1, 2, 3}
>>> 
二、序列类型

1. 序列类型

序列类型是一个基类类型,可以理解为在序列类型的基础上可以扩展为其他数据类型,例如 元组、列表、字符串。

序列是指具有一定先后关系的一组元素,元素之间类型可以不同,元素之间通过序号引导(序号分为正向递增和反向递减),通过序号可以访问特定位置的元素。

  • 序列的通用操作
操作符功能
x in S判断x是否在序列S中,返回 true 或 false
x not in S判断x是否不在序列S中,返回 true 或 false
x + S连接两个序列
S * n 或 n * S将序列赋值 n 次
S [ i ]索引 S 中第 i 个元素
S [i : j : k]i 不到 j 按步长为 k 切片
  • 序列的通用函数
函数名功能
len(S)返回序列S的元素个数
min(S)返回序列S中最小值,需要元素之间可以比较
max(S)返回序列S中最大值,需要元素之间可以比较
S.index(x)或S.index(i, j, k)返回序列S中(或 j 到 k 之间)第一次出现 x 的位置
S.count(x)返回序列S中出现x的总次数

2. 序列类型所扩展的数据类型

由于是在序列类型的基础上所扩展的,所以继承序列类型所有性质,并附加其他性质。

  1. 元组:一种一旦创建就不能修改的序列类型,序列基础上的延伸,使用 () 或tuple()创建,元素之间使用,分隔,由于元组类型一旦创建就不能修改,因此没有特别的操作。

如果想要保护数据,则可以将数据设为元组类型,因为元组类型数据不允许修改。

  1. 列表:一种创建后可以随意修改的序列类型,使用 [ ] 或 list()创建。
    列表使用注意点:由 [ ] 或 list()创建的才是真实的列表,赋值的过程只是将自己的地址给变量,而不是真正的值的传递。
    在这里插入图片描述
    列表类型增加的操作函数以及方法
函数或方法名功能
lb [ i ] = x将列表序号为 i 的元素替换为 x
lb [i : j : k] = ls用列表 ls 替换列表lb切片后的空缺
del lb [ i ]删除列表序号为 i 的元素
del lb[i : j : k]删除列表按步长k切片后的元素
lb += ls将列表 ls 添加到 lb列表(ls列表无变化)
lb *= n将列表 lb 赋值 n次(n为正整数)
lb.append(x)为列表 lb 后面添加元素 x
lb.clear()删除列表所有元素
lb.copy()返回一个新列表,内容为列表 lb 的副本
lb.insert(i, x)将列表序第 i 个位置添加元素 x,原位置元素依次往后排
lb.pop(i)将列表第 i 位置的元素取出,其他元素依次补位
lb.remove(x)将列表中第一次出现的元素 x 删除
lb.reverse()反转列表元素
>>> a = list("12345678")
>>> b = list("一二三四")
>>> a[0:7:2] = b
>>> a
['一', '2', '二', '4', '三', '6', '四', '8']
>>> 
# is += it实例
>>> lb = [1,2,3]
>>> ls = [4,5,6]
>>> lb += ls
>>> lb
[1, 2, 3, 4, 5, 6]
>>> ls
[4, 5, 6]
>>> 
# lb *= n 实例
>>> it *= 3
>>> it
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>>
#ls.insert()实例
>>> ls
[4, 5, 6]
>>> ls.insert(0,'元素')
>>> ls
['元素', 4, 5, 6]
>>> 
>>> ls
['元素', 4, 5, 6]
>>> ls.pop(0)
'元素'
>>> ls
[4, 5, 6]
>>> 
三、字典类型

字典类型是一种键和值映射的关系集,和实体字典类似,字由索引目录中的页码代替,通过页码就能找到字,这样页码和字之间就构成了映射关系。

  1. 字典通过 { } 或者dict()创建,键值对用:表示,键值对之间无序;可以使用 [ ] 对字典进行索引或者添加元素(可以参考序列类型的操作)。
#索引字典元素
>>> d = {"陕西":"西安","广西":"南宁","浙江":"杭州"}
>>> d["陕西"]
'西安'
#给字典添加元素
>>> d["湖北"] = "武汉"
>>> d.items()
dict_items([('陕西', '西安'), ('广西', '南宁'), ('浙江', '杭州'), ('湖北', '武汉')])
>>> 

字典类型操作方法和函数

函数和方法名功能
del d [ k ]删除字典中 k 键所对应的值
k in d判断k是否在字典中,返回true 或 flase
d.keys()返回字典中所有键的信息
d.values()返回字典中值的信息
d.items()返回字典中所有键值对信息
d.get(k, 自定义的值)查找键 k ,若存在则返回对应的值,相反返回自定义的值
d.pop(k, 自定义的值)取出键 k 对应的值,若不存在则返回自定义的值
d.popitem()随机从字典中取出一个键值对,以元组的形式返回
d.clear()删除字典中所有元素
len(d)返回字典 d 中元素个数
>>> d.keys()
dict_keys(['陕西', '广西', '浙江'])
>>> d.values()
dict_values(['西安', '南宁', '杭州'])
>>> 
>>> d.get("四川",1)
1
>>>
>>> d.popitem()
('浙江', '杭州')
>>> d.items()
dict_items([('陕西', '西安'), ('广西', '南宁')])
>>>

待续…

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值