python中的元组与集合

作者: daoqing99 | 来源:发表于2020-03-28 11:34 被阅读0次

元组

元组(Tuple)是‘不可变’的列表(List)
元组使用小括号,列表使用方括号

tup = ('张三','25','178')

元组的读与写

元组的读取方式与列表相同
元组的元素在创建后不允许修改
元组允许使用‘元组运算符’来创建新元组

(5,6)+(7,8,9)=(5,6,7,8,9)
('see','you')*2=('see','you','see','you')

元组的创建

t=('a','b','c',2,3) 建议加()
t='a','b','c',2,3 不加()也可以,也是元组

元组获取数据

元组的获取数据方式时与列表完全相同
例如:
t[5],
t[-1],
t[1:4]
'b' in tup

元组在创建后内容不可变
t[0]=2 都会报错
写入数据同样不支持
t.append('a'),t.pop('a') 都会报错

特殊情况

如果元组内持有列表,那么列表的内容是允许修改的
t2=(['张三','28'],['李四','22'])
t2[0][1]=30

元组运算符

(1,2,3)+(4,5)=(1,2,3,4,5)
('see','you')*2=('see','you','see','you')

注意:如果元组只有一个元素时,必须在这个元素后增加逗号说明这是一个元组

元组运算符同样适用于列表,但是不能混合使用
[1,2,3]+[4,5]=[1,2,3,4,5]

列表与元组的区别与应用场景

列表 元组
内容允许扩展 内容不可变
内存存储动态变化 创建后固定不变
效率较低 效率较高
运行时数据需要变更时使用 用于保存稳定不变的数据
保存天气数据,股市数据 保存国家名,元素周期表

认识‘序列’

序列(Sequence)是指‘有序’的队列
序列中的元素顺序按添加顺序排列
序列中的数据是通过索引进行获取(类似数组)

序列通常包含的数据结构

字符串(Str)
列表(List)
元组(Tuple)
数字序列(Range)

数字序列(Range)

range用于表示数据序列,内容不可变
数字序列使用 range()函数创建
语法:r=range(0,100) # 产生0-99数字序列,注意左闭右开
r=range(10,20) # 10-19的整数,左闭右开

增加步长 r=range(10,20,2) 最后一位2步长的意思 包含数字 10,12,14,16,18

成员运算符
print(12 in range(10,20)) #True

数字序列经典案例

通过range遍历其他序列
科学计算

序列类型的相互转换

list() 将其他序列类型转换为列表
tuple() 将其他序列类型转换为元组
join(),str() 将其他序列类型转换为字符串
str函数用于将单个数据转为字符串 join对列表进行连接
join要求所有元素必须是字符串

集合的介绍

集合(Set)是python中内置数据结构
集合可被看做是‘没有value的字典’
例如:{'张三','李四','王五'}

集合的特点

集合元素是无序的
集合元素不能重复
集合是可变的
集合允许数学运算
集合是分散存储的

集合的创建

使用{}符号创建集合
使用set()函数创建几个

例子:college = {'哲学','经济学','法学','教育学','物理学'} 如果打印出来顺序是乱的,不固定

使用set()内置函数从其他数据转换结构
college = set(['金融学','物理学','数学'])

使用set创建字符串集合
set('中华人民共和国')

空集合的创建》
college = set()

集合关系与数学运算

交集(intersection),
并集(union)
差集(difference)

交集

交集(intersection),获取两个集合中重复的部分,有两个内置方法
coll1.intersection(coll2)新建一个
coll1.intersection_update(coll2) 新建后赋值给coll1

并集

并集是,将两个集合所有元组合并去重
coll1.union(coll2)新建一个

差集 ,是指两个集合之间不同的部分

coll1.difference(coll2) 单项差集
coll1.symmetric_difference(coll2) 双向差集
coll1.symmetric_difference_update(coll2) 新建后赋值给coll1

集合间的关系操作

==判断两个集合的元素是否完全相同

s3.issubset(s4) s3是不是s4的子集

s4.issuperset(s3) s4是否包含s3

s5.isdisjoint(s6)判断两个集合是否存在重复元素
False 代表存在重复 True代表不存在重复元素

操作集合元素 ----增删改查

集合的遍历

for c in college:
    print(c)

判断元素是否存在

print('哲学' in college)
print('哲学' not in college)

集合中新增元素

add方法 一次只能新增一个元素,如果该元素已存在则会忽略
college.add('计算机学')

update()方法来一次添加多个元素
college.update(['生物学','工程学']) 列表形式
college.update(('生物学','工程学')) 元组形式

remove() 删除元素
college.remove('计算机学')
remove如果删除不存在的元素时会报错
discard()删除,如果不存在的元素时,则会忽略删除操作,不会产生错误

三种内置生成式

列表生成式
字典生成式
集合生成式

生成式语法
[被追加的数据 循环语句 循环语句或判断语句] | {}

列表生成式

lst = [i * 10 for i in range(10,20) if i % 2 == 0]

字典生成式

dict = {i+1:list[i] for i in range(0,len(list))}
print(dict)

集合生成式

set = {i*j for i in range(1,4) for j in range(1,4) if i == j}
print(set)

相关文章

  • Python基础之元组、字典,集合详解

    之前总结了Python列表,这篇总结Python的元组,字典和集合。 一 元组 tuple Python 的元组与...

  • Python中的set集合

    标签: set集合 set集合,在Python中的书写方式的{},集合与之前列表、元组类似,可以存储多个数据,但是...

  • python中的元组与集合

    元组 元组(Tuple)是‘不可变’的列表(List)元组使用小括号,列表使用方括号 tup = ('张三','2...

  • Python干货:了解元组与列表的使用和区别

    元组是 Python 对象的集合,跟列表十分相似。下面进行简单的对比。 列表与元组 1、python中的列表lis...

  • Python 元组

    Python中,元组的操作与列表相似,不同点是元组是不可变对象,元组中的元素不能修改。 1、定义元组 Python...

  • python的几种数据结构

    Python 中 几种数据结构的整理: 列表、字典、元组、集合 列表 : shoplist = ['apple',...

  • 第3章:内建数据结构、函数及文件

    python的常用数据结构:元组、列表、字典和集合 元组(tuple):固定长度、不可变的python序列 列表:...

  • python不可变集合

    对应于元组(tuple)与列表(list)的关系,对于集合(set),Python提供了一种叫做不可变集合(fro...

  • python赋值机制

    对应于元组(tuple)与列表(list)的关系,对于集合(set),Python提供了一种叫做不可变集合(fro...

  • python不可变集合

    对应于元组(tuple)与列表(list)的关系,对于集合(set),Python提供了一种叫做不可变集合(fro...

网友评论

    本文标题:python中的元组与集合

    本文链接:https://www.haomeiwen.com/subject/mymxuhtx.html