python组合数据类型(集合,序列,字典)以及jieba库的介绍

一、集合类型及操作

1、集合类型定义

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

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

举例

A = {"python",123,("python",123)}
print(A)
B = set("pypy123")#使用set()建立  元素唯一  无序
print(B)

输出

{'python', 123, ('python', 123)}
{'3', 'y', '2', 'p', '1'}

2、集合间操作

1)集合操作符

操作符及应用描述
S|T返回一个新的集合,包括在集合S和T中的所有元素
S-T返回一个新的集合,包括在集合S但不在T中的元素
S&T返回一个新的集合,包括同时在集合S和T中的元素
S^T返回一个新的集合,包括在集合S和T中的非相同元素
S<=T或 S < T返回True/False,判断S和T的子集关系
S>=T或 S > T返回True/False,判断S和T的包含关系

2)4个增强操作符: S|=T S-=T S&=T S^=T

举例

A = {"p","y",123}
B = set("pypy123")
print(A - B)

输出

{123}

3、集合处理方法

操作函数或方法描述
S.add(X)如果x不在集合S中,将x增加到S
S.discard()移除S中元素x,如果x不在集合S中,不报错
S.remove()移除S中元素x,如果x不在集合S中,产生KeyError异常
S.clear()移除S中所有元素
S.pop()随机返回S的一个元素,更新s,若S为空,产生KeyError异常
S.copy()返回集合S的一个副本
len(S)返回集合S的元素个数
x in S返回True\False
x not in S返回True\False
set(x)将其它类型变量转化为集合类型

4、集合的应用场景

-包含关系比较
-数据去重

数据去重举例

ls =["p","p","y","y",123]
s = set(ls)  #去重
lt = list(s)
print(lt)

输出

['y', 123, 'p']

二、序列类型及操作

1、序列类型的定义

-序列是一维元素向量,元素类型可以不同
-类似数学元素蓄力
-元素间由序号引导,通过下标访问序列的特定元素
-序列类型是一个基类类型
    -字符串类型
    -元组类型
    -列表类型

2、序列类型通用操作符

操作符及应用描述
x in s如果x是序列S的元素,返回True,否则返回False
x not in s同上类似
S + T连接两个序列S和T
Sn 或 nS将序列S复制n次
S[i]索引,返回S中的第i个元素,i是序列的序号
S[i:j]或S[i:j:k]切片,返回序列S中第i到j以k为步长的元素序列

3、序列类型通用函数和方法

函数和方法描述
len(S)返回序列S的长度
min(S)或max(S)返回序列S的最小或最大元素,需要S中元素可比较
S.index(x)或S.index(x,i,j)返回序列S从i开始到j位置中第一次出现元素x的位置
S.count(x)返回序列S中x出现的总次数

4、元组类型定义

-元组是一种序列,一旦创建就不能修改
-使用小括号()或tuple()创建,元素间用逗号分隔
-可以使用或不使用小括号

例如

#返回元组的情况
def func():
    return 1,2

5、列表类型定义

-列表是一种序列类型,创建后可以随意被修改
-使用方括号[]或list()创建,元素用逗号分隔
-列表中各元素类型可以不同,无长度限定
-使用[]或list()才是真正的创建了列表,如果仅仅只是使用赋值只是将一个列表付给了新的名字

例表类型操作函数和方法:

函数或方法描述
ls[i] = x替换列表ls第i元素为x
ls[i:j:k] = lt用列表lt替换ls切片后对应的元素子列表
del ls[i]删除列表ls中第i元素
del ls[i:j:k]删除列表中第i到第j以k为步长的元素
ls += lt更新列表ls,将列表lt元素增加到列表ls中
ls *= n更新列表ls,其元素重复n次
ls.append(x)在列表ls最后增加一个元素x
ls.clear()删除列表中所有元素
ls.copy()生成一个新的列表,赋值ls中所有元素
ls.insert(i,x)在列表ls的第i位置增加X
ls.pop(i)在列表ls中第i个位置元素取出并删除该元素
ls.remove(x)将列表ls中出现的第一个元素x删除
sorted(ls)对列表ls元素进行排序
les.sort(cmp=None, key=None, reverse=False)cmp – 可选参数, 如果指定了该参数会使用该参数的方法进行排序;key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序;reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)

5、列表功能举例

1、定义空列表lt
lt = []

2、向lt新增5个元素
lt += [1,2,3,4,5]

3、修改lt中的第2个元素
lt[2] = 6

4、向lt中第2个位置增加一个元素
lt.insert(2,7)

5、从lt中第1个位置删除一个元素
del lt[1]

6、删除lt中1-3位置元素
del lt[1:4]

7、判断lt中是否包含数字0
0 in lt

8、向lt新增数字0
lt.append(0)

9、返回数字0所咋lt中的索引
lt.index(0)

10、lt的长度
len(lt)

11、lt中最大元素
max(lt)

12、清空lt
lt.clear()

6、序列类型应用场景

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

三、字典类型

1、字典类型定义

-映射是一种建(索引)和值(数据)的对应
-键值对:建是数据索引的扩展
-字典是键值对的集合,键值之间是无序的
-采用大括号{}和dict()创建,键值对用冒号:表示
-字典的一个元素是一对键值对

2、字典类型操作函数和方法

函数或方法描述
del d[k]删除字典的中键k对应的数据值
k in d判断键k是否在字典d中,如果在返回True,否则False
d.keys()返回字典d中所有的键的信息
d.value()返回字典d中所有的值的信息
d.items()返回字典d中所有的键值对信息
d.get(k,)键k存在,则返回相应值,不在则返回default值
d.pop(k,)键k存在,则取出相应值,不在则返回default值
d.popitem()随机从字典d中取出一个键值对,以元组形式返回
d.clear()删除所有键值对
len(d)返回字典d中元素的个数

四、jieba库的使用

1、jieba库的概述

-jieba是优秀的中文分词第三方库,需要pip安装
-中文文本需要通过分词获取单个的词语
-jieba库提供三种分词模式,最简单只需掌握一个函数
-jiba分词依靠中文词库
    -利用一个中文词库,确定汉字之间的关联概率
    -汉字键概率大的组成词库,形成分词效果
    -除了分词,用户还可以添加自定义的词组

2、jieba库使用说明

-精确模式:把文本精确的切分开,不存在冗余单词
-全模式:把文本中所有可能的词语°扫描出来,有冗余
-收索引擎模式:在精确模式基础上,对长词再次切分

jieba库常用函数

函数描述
jieba.lcut(S)精确模式,返回一个列表的分词结果。举例 jieba.lcut(“中国是一个伟大的国际”);输出:[‘中国’, ‘是’, ‘一个’, ‘伟大’, ‘国家’]
jieba.lcut(s,cut_all=True)全模式,返回一个列表类型的分词结果,存在冗余。举例:ieba.lcut(“中国是一个伟大国家”,cut_all = True) ;输出:[‘中国’, ‘国是’, ‘一个’, ‘伟大’, ‘大国’, ‘国家’]
jieba.lcut_for_search(S)收索引擎模式,返回一个列表类型的分词结果,存在冗余。举例:jieba.lcut_for_search(“中华人民共和国万岁”) ;输出:[‘中华’, ‘华人’, ‘人民’, ‘共和’, ‘共和国’, ‘中华人民共和国’, ‘万岁’]
jieba.add_word(w)向分词词典增加新词w
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值