6.组合数据类型

集合set

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

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

集合操作符

操作符及应用 描述
S|T 返回一个新集合,包括st中的所有元素
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.add 向集合中添加元素
S.discard 移除集合中的一个元素(如果元素不存在,不报错)
S.remove 移除集合中的一个元素(如果元素不存在,会引发 KeyError)
S.clear 移除集合中所有元素
S.pop 随机返回集合S的一个元素,更新S(如果集合为空,会引发 KeyError)
S.copy 返回集合S的一个副本
len(S) 返回集合S的元素个数
x in S 判断集合S中是否有元素x,是返回True否则返回False
x not in S 判断集合S中是否有元素x,是返回False否则返回True
set(x) 将其他类型变量x转变为集合类型

数据去重,典型用法,利用数组内元素不可重复.

序列sequence

  • 序列可以包含一个或多个元素,也可以没有任何元素.
  • 我们之前所说的基本数据类型,都可以作为序列的元素.。
  • 序列有两种:tuple(元组) 和 list (表)

序列操作符

操作符及应用 描述
x in S 如果x是序列S的元素,返回True否则返回False
x not in S 如果x是序列S的元素,返回False否则返回True
s + t 连接两个序列s和t
SN或NS 讲序列s复制n次
S[i] 索引,返回序列中的第i个元素
S[i:j]或S[i;j;k] 切片,返回s序列中第i到j步长为k的元素子序列

序列处理方法

函数和方法 描述
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) 返回序列中x出现的总次数

元组是序列类型的一种扩展.
使用小括号()或tuple()创建,元素间用逗号分隔.
可以使用或不使用小括号.
tuple元素不可变,list元素可变.
字符串是一种tuple.
数据保护将数据转换为元组类型.

字符串是一种特殊的元组,因此可以执行元组的相关操作。

str = 'abcdef'
print(str[2:4])
  • 列表是一种序列类型,被创建后可以随意修改
  • 使用方括号[]或list()创建,元素间用逗号分隔
  • 可以使用或不使用小括号
函数或方法 描述
ls[i]=x 替换列表ls第i个元素为x
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) 在列表最后添加元素x
ls.clear() 移除列表中所有元素
ls.copy() 生成一个新列表,赋值ls中所有元素
is.insert(i,x) 在列表ls第i位增加元素x
ls.pop(i) 将列表ls中第i位置元素取出并删除
ls.remove(x) 将列表ls中出现的第一个x元素删除
ls.reverse() 将列表ls中元素反转

字典

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

  • 字典类型是映射的体现.
  • 键值对:键是数据索引的扩展.
  • 字典是键值对的集合,键值对之间无序.
  • 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用(,)分割,整个字典包括在花括号{}中.
    <字典变量> = {<键1>:<值1>,<键2>:<值2>...<键n>:<值n>}
    键必须是唯一的,但值不必.
>>>d = {"中国":"北京","美国":"华盛顿","法国":"巴黎"}
>>>d
{'中国':'北京','美国':'华盛顿','法国':'巴黎'}
>>>d["中国"]
'北京'
>>>de = {} ; type(de)
<class 'dict'>
函数或方法 描述
del d[k] 删除字典d中键k对应的数据值
k in d 判断键k是否在字典d中,如果在返回True,否则False
d.keys() 返回字典中所有的键信息
d.values() 返回字典中所有的值信息
d.items() 返回字典中所有的键值对信息

列表类型操作函数和方法

函数或方法 描述
d.get<k.default> 键k存在,则返回相应值,不在则返回<default>值
d.pop<k.default> 键k存在,则取出相应值,不在则返回<default>值
d.popitem() 随机从字典中取出一个键值对,以元组形式返回
d.clear() 删除所有的键值对
len(d) 返回字典d中元素的个数

对于List:

classmates = ['Michael', 'Bob', 'Tracy']
classmates.append('Adam')    //添加在末尾,没有add()方法
classmates.insert(1, 'Jack') //在指定位置添加
classmates.pop(1)            //在知道位置删除,参数是索引
del classmate[1]             //删除第二个元素
classmates.remove('Bob')     //参数是元素,删除第一个与Bob值匹配的元素,之后又相同元素不会删除

对于dict:

d = {'a': 'A', 'b': 'B'}
del d['a']
d.pop('a')    //参数是key,没有remove()方法
d['c']='C';   //插入直接赋值即可

对于set:

s={1,2,3}       //set对象的创建也可以是s=set(iterable)
s.add(8)        //添加8到末尾   没有append()方法
s.remove(8)     //参数是元素,不是索引    删除8   
s.pop()         //删除最后一个元素

对于tuple:
由于tuple一旦初始化就不能修改,所以不能插入和删除.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,082评论 17 410
  • 第六章:数字 第七章:序列,列表,元组 1.序列 序列类型有着相同的访问模式:它的每一个元素可以通过指定一个偏移量...
    m风满楼阅读 917评论 0 2
  • 民宿设计最近是很火一个行业,民宿最精髓就是融入环境。
    金保室内设计阅读 535评论 0 0
  • 冬至到,吃水饺, 我擀皮儿,奶奶包, 头碗水饺给爷爷, ...
    周雅菲阅读 461评论 0 0