话不多说,直接看目录
笔记目录
一,前言
相信大家每天都在接触数据吧,电脑的普及还有发展很大程度都是和数据有关,个人观点。数据可谓是无处不在
二,集合类型及操作
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
可以理解为in
和not 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中
好像in
和not 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在数据处理方面有很大优势。。