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中的元组与集合

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