python之组合数据类型学习笔记

话不多说,直接看目录

一,前言

相信大家每天都在接触数据吧,电脑的普及还有发展很大程度都是和数据有关,个人观点。数据可谓是无处不在

二,集合类型及操作

1,集合类型的定义

集合是多个元素的无序组合
集合类型与数学中集合的概念一致。
集合元素无序,每个元素唯一,不存在相同元素。
集合元素不可更改,不能是可变数据类型。

我想起了高中第一节数学课,就是集合。在数学中集合也是这么说的吧,不可以相同元素,无序,

集合用大括号{}表示,元素间用逗号分隔。
建立集合类型用{}或set()。
建立空集合类型,必须用set()。

我们来演示一波操作

>>>a = {"中国北京","abc",123,("人生苦短,我学pyhon")}
{'中国北京', '人生苦短,我学pyhon', 'abc', 123}

>>>b = set("中国北京,abc,123,人生苦短,我学pyhon")
{123, '中国北京', 'abc', '人生苦短,我学pyhon'}
{'中', '京', '3', '苦', 'a', '人', ',', 'b', '生', 'n', '1', '国', 'o', 'h', 'y', '短', '学', '2', 'p', 'c', ',', '我', '北'}

从中我发现了个问题a、b两个集合元素相同,但是他们的输出不同,这是为什么???
个人观点导入一个jieba库,用它的全模式是不是会出现第一种情况?

2,集合操作符

字符串有操作符,索引[]。还记得!那么集合类型也有操作符。
前面提到过集合类型和数学中的集合概念一样,他们也有交、并、差、补。当初学这块内容时就是记不住交集(∩)和并集(∪)这两个符合,考试前一晚 晚自习还在想上优并下优交?下优并上优交?小朋友你是否有很多问号?????
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果说第二张图片是标准版,难么后面的就是增强版,Pro。手机的后缀名有个Pro,哈哈哈
康康这三张图片,代码安排上~

>>>A = {"p","y",123}
>>>B = set("python123")
>>>A | B
{'n', 'p', 'o', 'h', '1', '3', 'y', '2', 't', 123}#集合中不可以出现相同元素。“p、y保留一组”
>>>A = {"p","y",123}
>>>B = set("python123")
>>>A - B
123#set()函数会把里面的元素一一分开,123.
>>>A = {"p","y",123}
>>>B = set("python123")
>>>A & B
{'p', 'y'}#同时只有p、y。
>>>A = {"p","y",123}
>>>B = set("python123")
>>>A ^ B
'h', 123, 'n', '2', 'o', '3', '1', 't'}#不相同元素
>>>A = {"p","y",123}
>>>B = set("python123")
>>>A < b
False
>>>A > b
False
>>>A = {"p","y",123}
>>>B = set("py")
>>>A < b#子集关系。
True#B集合里的元素在A集合中存在,返回true。
>>>A = set("py")
>>>B = {"p","y",123}
>>>A >B#包含关系
True#这个该怎么解释呢?

对普通版进行演示了,Pro版遭到了我的嫌弃。

3,集合的处理方法

想起方法,有个很知识点
方法的表达形式:<a>.<b>()形式
在这里插入图片描述
在这里插入图片描述
看起来很多。。。
我也演示一下

>>>A = {"a","b","123","北京","(python)"}#我用{}创集合
>>>A.add("中国")
>>>A
{'北京', '中国', '123', 'a', '(python)', 'b'}
>>>A = {"a","b","123","北京","(python)"}
>>>A.discard("b")
>>>A
{'a', '(python)', '123', '北京'}
>>>A = {"a","b","123","北京","(python)"}
>>>A.remove("c")
>>>A
Traceback (most recent call last):
  File "E:\新建文件夹\Python程序设计\练习.py", line 2, in <module>
    print(A,A.remove("c"))
KeyError: 'c'#由于集合中没有c元素,报错 
>>>A.discard("C")
>>>A
{'北京', '(python)', 'b', '123', 'a'}#由于集合中没有c元素,返回原集合
>>>A = {"a","b","123","北京","(python)"}
>>>A.clear()
>>>A
set()#清空
>>>A = {"a","b","123","北京","(python)"}
>>>A.pop()
北京
>>>A = {"a","b","123","北京","(python)"}
>>>A.copy()
{'b', '123', '(python)', 'a', '北京'}
#就是复制一遍
>>>A = {"a","b","123","北京","(python)"}
>>>len(A)
5

emmm,这个len()函数在字符串中也用的到吧。

>>>A = {"a","b","123","北京","(python)"}
>>>"a" in A
True##在里面
>>>"A" in A
False#不在里面
>>>A = {"a","b","123","北京","(python)"}
>>>"A" not in A
True
>>>"a" not in A
False

可以理解为innot in互补

>>>set("人生苦短,我学Python")
{',', '人', '短', '我', 'o', 'n', 't', 'y', '学', '苦', 'h', '生', 'P'}

4,集合类型应用场景

数据去重。集合类型所有元素无重复。

三,序列类型及操作

1,序列类型定义

序列是一种具有先后关系的一组元素
序列是一维元素向量,元素类型可以不同。
类似数学元素类型:A1,A2,A3·······An
元素之间有序号引导,通过下标访问序列的特定元素。

序列是一个基本类型
序列包括:字符串类型、元祖类型和列表类型

在这里插入图片描述
和集合类型不同,序列类型是有顺序的
那张图像像像极了字符串的索引序列

2,序列处理函数及方法

先看图
在这里插入图片描述
在作事

s = ["pthon","中国","123"]#创建一个元组
t = ["北京","abc","python"]
>>>("中国" in s)
True#"中国"在元组s中
>>>("北京" in s)
False#"北京"不在元素s中
>>>("中国" not in s)
False#"中国"在元组s中
>>>("北京" not in s)
True#"北京"不在元素s中

好像innot in都是成对出现!

>>>s + t
>['pthon', '中国', '123', '北京', 'abc', 'python']#连接

元组可以有相同元素

>>>s*n
['pthon', '中国', '123', 'pthon', '中国', '123', 'pthon', '中国', '123']#重要的事情说三遍
>>>s[2]
123#"123"事第二个元素
>>>s[::-1]
['123', '中国', 'pthon']

在这里插入图片描述

s = ["pthon","中国","123"]#创建一个元组
t = ["北京","abc","python"]
>>>len(s)
3
>>>max(s)
中国
>>>min(S)
123

有哪位大佬给我解释一下这是什么意思,文字、英文、数字为什么可以在一起比较

>>>s.count("中国")
1

3,元祖类型及操作

(1)元组的定义

元组是序列类型的一种扩展
元组是一种序列类型,一旦创建就不能修改
用小括号()或tuple()创建,元组间用逗号,分隔
可以使用或不适用小括号

(2)元组类型的操作

元组类型继承了序列类型的全部通用操作
因为创建后不能修给,所以没有特殊操作

4,列表类型及操作

列表类型是序列类型的的一种扩展,十分常用
列表是一种序列类型,所以创建后可以随意被修改
使用[]或list()创建,元素之间用逗号.隔开
列表中各元素可以不同,无限长度。
在这里插入图片描述
在这里插入图片描述

>>>['中国', 'dfg', '北京', '123', 'a', '(python123)', 'd', 'e']#创建列表
>>>It = ["qwe","456","Hello","Woeld"]
>>>Is[1] = ["dfg"]
['中国', 'dfg', '北京', '123', 'a', '(python123)', 'd', 'e']#序列号为1的元素被替换,“abc”秒变“dfg”
>>>Is[1:3] = It
['中国', 'qwe', '456', 'Hello', 'Woeld', '123', 'a', '(python123)', 'd', 'e']#替换序列号为1到3的内容,
>>>
>>>del Is[1]
['中国', '北京', '123', 'a', '(python123)', 'd', 'e']
>>>del Is[1:5:1] 
['中国', '(python123)', 'd', 'e']#代表步长
>>>Is += It 
['中国', 'abc', '北京', '123', 'a', '(python123)', 'd', 'e', 'qwe', '456', 'Hello', 'Woeld']#合并
>>>Is * 3
['中国', 'abc', '北京', '123', 'a', '(python123)', 'd', 'e', '中国', 'abc', '北京', '123', 'a', '(python123)', 'd', 'e', '中国', 'abc', '北京', '123', 'a', '(python123)', 'd', 'e']
>>>Is.append("dfg")
['中国', 'abc', '北京', '123', 'a', '(python123)', 'd', 'e', 'dfg']#增加“dfg”
>>>Is.clear()
[]#返回一个空列表
>>>Is.copy()
["中国","abc","北京","123","a","(python123)","d","e"]#copy一下
>>>Is.insert(2,"123")
['中国', 'abc', '123', '北京', '123', 'a', '(python123)', 'd', 'e']
>>>s = ["a","b","c","a","d"]
>>>s.remove("a")
["b","c","a","d"]#删除第一个“a”
>>>Is.pop(2)
['中国', 'abc', '123', 'a', '(python123)', 'd', 'e']
>>>Is.reverse ()
'e', 'd', '(python123)', 'a', '123', '北京', 'abc', '中国']#反过来了

5,序列类型应用场景

数据表示:元组和列
元组用于元素不改变的场景,更多用于固定搭配场景。
列表更加灵活,他是最常用的数据类型。
最主要的作用,表示一组有序数据,进行操作他们。

四,字典类型及操作

1,字典类型定义

理解“映射”
映射是一种键(索引)和值(数据)对应

键值对:键是数据索引的扩展
字典是键值对的集合,键值对之间没有顺序
有个大括号{}或dict()创建,键值对用冒号:表示

{<1>:<1>,<2>:<2>,<3>:<3>,...,<键N>:<值N>,}

字典类型的用法
在字典变量中,通过键获得值

d = {"姓名":"张三","性别":"男","住址":"北京"}

[]用来向字典变量中索引或增加元素

>>>d
{"姓名":"张三","性别":"男","住址":"北京"}
>>>d["住址"]
北京

2,字典处理函数及方法

先放两张图、
在这里插入图片描述

在这里插入图片描述

敲代码,熟能生巧
字典类型的用法
在字典变量中,通过键获得值

d = {"姓名":"张三","性别":"男","住址":"北京"}
>>>del d["性别"]
{'姓名': '张三', '住址': '北京'}#删除性别
>>>"性别" in d
True#“性别”在字典里
>>>"电话" in d
False#“电话”不在字典里
>>>d.keys()
dict_keys(['姓名', '性别', '住址'])#返回键信息
>>>d.values()
dict_values(['张三', '男', '北京'])
>>>d.items()
dict_items([('姓名', '张三'), ('性别', '男'), ('住址', '北京')])
>>>d.get("住址","12345")
北京
>>>d.get("电话","12345")
12345#键值中没有电话
>>>d.pop("住址","12345")
北京
>>>d.pop("电话","12345")
12345#键值中没有电话

get是返回,pop是取出。。貌似没有区别

>>>d.popitem()
('住址', '北京')
>>>d.clear()
None
>>>len(3)
3#以对的形式出现

3,字典类型场景应用

映射无处不在,键值对无处不在
例如:统计数据出现的次数,数据是键,次数是值
最主要的作用,表达键值对数据,进而操作他们

五,总结

结束啦
我发现了个有趣现象。有的函数他们是通用的,比如len(),想起这个,字符串也可以用。还有clear()英语是清空的意思,所以。。。
数据无处不在,Python在数据处理方面有很大优势。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值