组合数据类型

简介: 组合数据类型

文章目录


组合数据类型


1.集合类型及操作


集合类型定义


集合操作符


集合处理方法


集合类型应用场景


2.序列类型及操作(重要)


序列类型定义


序列处理函数及方法


元组类型及操作


列表类型及操作


列表类型操作函数和方法


序列类型应用场景


3.字典类型及操作


字典类型定义


字典处理函数及方法


字典类型应用场景


4.jieba库的使用


5.文本词频统计


组合数据类型



目标:


学会Python三种主流组合数据类型的使用方法

能够编写处理一组数据的程序


1.集合类型及操作


集合类型定义


集合是多个元素的无序组合


集合类型与数学中的集合概念一致


集合元素之间无序,每个元素唯一,不存在相同元素

集合元素不可更改,不能是可变数据类型


为什么集合类型元组不可更改,因为集合元素要求每个元素是唯一的,如果我们在更改元素的过程中出现了元素相同,就会出错。


集合用大括号 {} 表示,元素间用逗号分隔


建立集合类型用 {} 或 set()


建立空集合类型,必须使用set()


20210630182015461.png


重点:


集合用大括号{}表示,元素间用逗号分割

集合中元素唯一,不存在相同元素

无序性


集合操作符


20210630182430949.png

20210630182440625.png

20210630182450984.png


实例:


20210630182829735.png


集合处理方法


2021063018321013.png

20210630183215552.png


循环变量,while死循环有 A.pop() 一直取元素,空时会产生异常try except捕获异常,程序退出。


20210630183610861.png


集合类型应用场景


包含关系比较


20210630184113993.png


数据去重:集合类型所有元素无重复(最重要)


20210630184049561.png


2.序列类型及操作(重要)


序列类型应用场景


序列类型定义

定义:序列是具有先后关系的一组元素(感觉像C数组)


序列是一维元素向量,元素类型可以不同


类似数学元素序列: s0, s1, … , sn-1

元素间由序号引导,通过下标访问序列的特定元素


序列是一个基类类型,衍生出字符串类型,元组类型,列表类型


20210630184738435.png

20210630185008305.png


前面的字符串类型大同小异,只不过字符串类型元素只能是字符,而序列可以是任意类型。


序列处理函数及方法


操作符


20210630185315555.png

20210630185355530.png


函数


20210630185536120.png

20210630185554816.png


元组类型及操作


元组是序列类型的一种扩展


元组是一种序列类型,一旦创建就不能被修改

使用小括号 () 或 tuple() 创建,元素间用逗号 , 分隔

可以使用或不使用小括号


20210630213610662.png


列表类型及操作


列表是序列类型的一种扩展,十分常用


列表是一种序列类型,创建后可以随意被修改

使用方括号 [] 或list() 创建,元素间用逗号 , 分隔

列表中各元素类型可以不同,无长度限制


20210630214236941.png


这里注意,仅仅通过赋值只是将列表重复命名,此时这两个名字指向一个列表,并未创建新的列表。


列表类型操作函数和方法


20210630214919626.png

20210630214932434.png

20210630214949363.png

20210630215054288.png


序列类型应用场景


元组用于元素不改变的应用场景,更多用于固定搭配场景

列表更加灵活,它是最常用的序列类型

最主要作用:表示一组有序数据,进而操作它们

数据保护

如果不希望数据被程序所改变,转换成元组类型


20210630215416943.png



3.字典类型及操作


字典类型定义

映射

映射是一种键(索引)和值(数据)的对应


20210701001752638.png


20210701001759266.png


键值对:键是数据索引的扩展

字典是键值对的集合,键值对之间无序


采用大括号{}和dict()创建,键值对用冒号: 表示


在字典变量中,通过键获得值


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


{<键1>:<值1>, <键2>:<值2>, … , <键n>:<值n>}
<字典变量> = {<键1>:<值1>, … , <键n>:<值n>}
<值> = <字典变量>[<键>]
<字典变量>[<键>] = <值>

20210701002009879.png


字典处理函数及方法


20210701002232449.png

20210701002243195.png

20210701002248376.png

20210701002252383.png


字典类型应用场景


映射无处不在,键值对无处不在

例如:统计数据出现的次数,数据是键,次数是值


最主要作用:表达键值对数据,进而操作它们


4.jieba库的使用


jieba是优秀的中文分词第三方库


中文文本需要通过分词获得单个的词语

jieba是优秀的中文分词第三方库,需要额外安装


jieba库提供三种分词模式,最简单只需掌握一个函数


安装:


(cmd命令行) pip install jieba


jieba分词依靠中文词库


利用一个中文词库,确定中文字符之间的关联概率

中文字符间概率大的组成词组,形成分词结果


除了分词,用户还可以添加自定义的词组


jieba分词的三种模式


精确模式、全模式、搜索引擎模式


精确模式:把文本精确的切分开,不存在冗余单词


全模式:把文本中所有可能的词语都扫描出来,有冗余

搜索引擎模式:在精确模式基础上,对长词再次切分


jieba库常用函数


2021070100324987.png


5.文本词频统计



需求:一篇文章,出现了哪些词?哪些词出现得最多?


就找三国演义


import jieba
txt = open("D:\Python\案例\三国演义.txt", "r", encoding='utf-8').read()
words  = jieba.lcut(txt)
counts = {}
for word in words:
    if len(word) == 1:
        continue
    else:
        counts[word] = counts.get(word,0) + 1
it = list(counts.items())
it.sort(key=lambda x:x[1], reverse=True) 
for i in range(15):
    word, count = it[i]
    print ("{0:<5}{1:>5}".format(word, count))


先下载,再通过jieba库对文章的高频词条进行了统计


20210701005805986.png



相关文章
|
9月前
|
存储 编译器 程序员
C++基础篇之什么是数据类型
C++基础篇之什么是数据类型
|
9天前
|
Dart
Dart之常用数据类型(字符串、数值、布尔、集合、映射)
Dart之常用数据类型(字符串、数值、布尔、集合、映射)
8 0
|
2月前
|
存储 算法 C++
c++复合数据类型
c++复合数据类型
|
2月前
|
编译器 程序员 C语言
【C++ 类型系统】了解C++ 中 标量、复合、标准布局、平凡和聚合类型
【C++ 类型系统】了解C++ 中 标量、复合、标准布局、平凡和聚合类型
89 0
|
11月前
数据类型的转化
一、浮点型,字符串转换成整型
49 1
|
11月前
|
C#
57【C#基础】C#数据类型总结
【C#基础】C#数据类型总结
47 0
|
12月前
|
C#
C#基础Ⅲ-数据类型
C#基础Ⅲ-数据类型
|
C语言 C++
C++——数据类型之间的转换
C++——数据类型之间的转换
|
存储 安全 Java
【C#基础】C# 数据类型总结
编程语言 C# 数据类型的介绍 。
72 0
【C#基础】C# 数据类型总结
|
机器学习/深度学习 数据处理 索引
函数组合
函数组合
120 0

热门文章

最新文章