第六周 组合数据类型

集合是多个元素的无序组合,每个元素唯一,不存在相同元素,集合元素不可更改,不能是可变数据类型。
集合用大括号表示,元素间用逗号分隔,建立集合类型用{}或set(),建立空集合类型必须用set()。
集合类型主要用于包含关系比较和数据去重。
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的包含关系
S|=T 更新集合S,包括在集合S和T中的所有元素
S-=T 更新集合S,包括在集合S但不在T中的元素
S&=T 更新集合S,包括同时在集合S和T中的元素
S^=T 更新集合S,包括集合S和T中的非相同元素

集合处理方法
S.add(x) 如果x不在集合S中,将x增加到S
S.discard(x) 移除S中元素x,如果x不在集合S中,不报错
S.remove(x) 移除S中元素x,如果x不在集合S中,产生KeyError异常
S.clear() 移除S中所有元素
S.pop() 随机返回S的一个元素,更新S,若S为空产生KeyError异常
S.copy() 返回集合S的一个副本
len(S) 返回集合S的元素个数
x in S 判断S中元素x,x在集合S中,返回true,否则返回false
x not in S 判断S中元素x,x不在集合S中,返回true,否则返回false
set(S) 将其他类型变量x转变为集合类型

序列是具有先后关系的一组元素,序列是一维元素向量,元素类型可以不同,元素间由序号引导,通过下标访问序列的特定元素。序列是一个基类类型。字符串类型、元组类型和列表类型是序列类型的衍生。
字符间的比较是按照字母序来比较。
序列类型应用场景:元组用于元素不改变的应用场景,更多用于固定搭配场景,列表更加灵活,是最常用的序列类型。元组和序列的最大作用是表示一组有序数据,进而操作它们。
元素遍历

列表:
for item in ls:
<语句块>
元组:
for item in tp:
<语句块>

数据保护:如果不希望数据被程序所改变,转换为元组类型。
x in s 如果x是序列s的元素,返回true,否则返回false
x not in s 如果x是序列s的元素,返回false,否则返回true
s+t 连接两个序列s和t
s * n或n*s 将序列s复制n次
s[i] 索引,返回s中的第i个元素,i是序列的序号
s[i:j]或s[i:j:k] 切片,返回序列s中第i到j以k为步长的元素子序列
[::-1]取反
len(s) 返回序列s的长度
min(s) 返回序列s的最小元素,s中元素需要可比较
max(s) 返回序列s的最大元素,s中元素需要可比较
s.index(x)或s.index(x,i,j) 返回序列s从i开始到j位置中第一次出现元素x的位置
s.count(x) 返回序列s中出现x的总次数

元组是序列类型的一种扩展,一旦创建就不能被修改,使用小括号()或tuple()创建,元素间用逗号分隔,可以使用或不使用小括号。元组继承序列类型的全部通用操作,没有特殊操作。
列表是序列类型的一种扩展,创建后可以随意被修改,使用方括号[]或list()创建,元素间用逗号分隔,列表中各元素类型可以不同,无长度限制.
la[i]=x 替换列表ls第i个元素为s
ls[i:j:k]=lt 用列表lt替换ls切片后所对应元素子列表
del ls[i] 删除列表ls中第i元素
del ls[i:j:k] 删除列表ls中第i到第j以k为步长的元素
ls+=lt 更新列表ls,将列表lt元素增加到列表ls中
ls*=n 更新列表ls,其元素重复n次
ls.append(x) 在列表ls最后增加一个元素x
is.clear() 删除列表ls中所有元素
is.copy() 生成一个新列表,赋值ls中所有元素
is.insert(i,x) 在列表ls的第i位置增加元素x
is.pop(i) 将列表ls中第i位置元素取出并删除该元素
is.remove(x) 将列表ls中出现的第一个元素x删除
is.reverse() 将列表ls中的元素反转

字典类型是映射的体现,字典类型通过键值对进行数据索引的扩展,字典是键值对的集合,键值对之间无序,采用大括号{}和dict()创建,{}表示空的字典类型,键值对用冒号:表示。{<键1>:<值1>,<键2>:<值2>,<键n>:<值n>}
在字典变量中,通过键获得值。
<字典变量>={<键1>:<值1>,<键2>:<值2>,<键n>:<值n>}
<值>=<字典变量>[<键>]
<字典变量>[<键>]=<值>
[]用来向字典变量中索引或增加元素
type(x)返回变量的类型
d[“a”]=1; d[“b”]=2,向d新增一个键值对元素,修改第二个元素d[“b”]=3.
del d[k] 删除字典d中键k对应的数据值
k in d 判断键k是否在字典d中,如果在返回True,否则False
d.keys() 返回字典d中所有的键信息
d.values() 返回字典d中所有的值信息
d.items()返回字典d中所有的键值对信息
d.get(k,) 键k存在,则返回相应值,不在则返回值
d.pop(k,)键k存在,则取出相应值,不在则返回值
d.popitem() 随机从字典d中取出一个键值对,以元组形式返回
d.clear() 删除所有键值对
len(d) 返回字典d中元素的个数
字典类型应用场景:映射的表达,最主要的作用是表达键值对数据,进而操作它们。
元素遍历

for k in d:
<语句块>

jieba库是优秀的中文分词第三方库,需要额外安装,中文文本需要通过分词获得单个的词语,jieba库提供三种分词模式,最简单只需掌握一个函数。
安装:(cmd命令行)pip install jieba
jieba分词依靠中文词库,利用一个中文词库确定汉字之间的关联概率,汉字间概率大的组成词组,形成分词结果,除了分词,用户还可以添加自定义的词组。
jieba分词的三种模式:精确模式(把文本精确的切分开,不存在冗余单词)、全模式(把文本中所有可能的词语都扫描出来,有冗余)、搜索引擎模式(在精确模式基础上,对长词再次切分)
jieba.lcut(s):精确模式,返回一个列表类型的分词结果。

jieba.lcut("中国是一个伟大的国家"['中国','是','一个','伟大','的','国家']

jieba.lcut(s,cut_all=True):全模式,返回一个列表类型的分词结果,存在冗余。

jieba.lcut("中国是一个伟大的国家",cut_all=True['中国','国是','一个','伟大','的','国家']

jieba.lcut_for_search(s):搜索引擎模式,返回一个列表类型的分词结果,存在冗余。

jieba.lcut_for_search("中华人民共和国是伟大的")

['中华','华人','人民','共和','共和国','中华人民共和国','是','伟大','的']

jieba.add_word(w):向分词词典增加新词w。

txt.lower():将所有单词转换为小写

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值