Python基础——序列(下)

元组

上节提到的列表属于可变序列,可以任意修改列表中的元素。但元组属于不可变序列,不能对元组中的元素做增加、删除、修改。

元组的创建

  • 通过()创建元组
    小括号也可以省略,举例如下:

    如果元组只有一个元素,则后面必须加逗号。否则解释器会把(1)解释为整数 1,只有(1,) 才会被解释为元组。

  • 通过tuple()创建元组
    格式为:tuple(可迭代的对象) ,举例如下:
    对比和列表创建的区别在这里插入图片描述

元组的元素访问和计数

  • 元组的元素不能修改
    示例如下,若尝试修改将会报错。
    在这里插入图片描述
  • 元组的元素访问和列表一样
    同样可以通过索引、切片访问,但注意:返回的仍然是元组对象
>>> a=(1,2,3,4,5)
>>> a[1:3]
(2,3)
  • 如果要对元组排序,只能使用内置函数 sorted(tupleObj),并生成新的列表对象。
>>> a = (20,10,30,9,8) 
>>>> sorted(a) #发现生成的是列表而非元组
[8, 9, 10, 20, 30]

元组中“+”和zip的使用

  • “+”在元组中仍然起到拼接作用,举例如下:
    在这里插入图片描述
    此外,len(),min(),max(),sum()等使用均与列表相同。
  • zip(列表 1,列表2,…)将多个列表对应位置的元素组合成为元组,并返回这个 zip对象。
    在这里插入图片描述

生成器推导式创建元组

  • 注意:生成器推导式生成的不是列表也不是元组,而是一个生成器对象,可以通过生成器对象,转化成列表或者元组。
  • 生成器有指针,遍历时视为指针移动,故遍历一次结束后再试图__next__() 就会报错,其只能用一次。
>>> s = (x*2 for x in range(5)) 
>>>> s 
<generator object <genexpr> at 0x0000000002BDEB48> 
>>> tuple(s) 
(0, 2, 4, 6, 8) 
>>> list(s) #只能访问一次元素。第二次就为空了。需要再生成一次 
[] 
>>> s
<generator object <genexpr> at 0x0000000002BDEB48> 
>>> tuple(s)
()
>>> s = (x*2 for x in range(5)) 
>>> s.__next__() 
0
>>> s.__next__() 
2
>>> s.__next__() 
4

另外,元组与整数和字符串一样,可以作为字典的键,列表则永远不能作为字典的键使用。

字典

字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”。包含:“键 对象”和“值对象”。

字典的创建

  • 通过{}、dict()来创建字典对象
    举例如下:
    在这里插入图片描述
  • 通过zip()创建字典对象
    举例如下:在这里插入图片描述
  • 通过fromkeys创建值为空的字典
>>> a = dict.fromkeys(['name','age','job'])  #只有键
>>> a
{'name': None, 'age': None, 'job': None}

字典元素的访问

假定,
a = {‘name’:‘xiaobai’,‘age’:3,‘color’:‘white’}

  • 获得“值”的两种方法
>>> a['name']
'xiaobai'
>>> a.get['name']
'xiaobai'
  • 依次获得所有的键值对、键、值
    在这里插入图片描述

字典元素添加、修改、删除

  • 新增“键值对”
    若“键”已经存在,则覆盖旧的键值对(可理解为将值替换为新的);如果“键”不存在, 则新增“键值对”。
  • 使用update()
    将新字典中所有键值对全部添加到旧字典对象上。同样,如果key有重复,则直接覆盖,没有重复就添加。 举例如下:
    在这里插入图片描述
  • 元素的删除
    1、使用del()方法;
    2、clear()删除所有键值对;
    3、pop()删除指定键值对,并返回对应的“值对象”;
    运用举例:在这里插入图片描述
  • popitem() :随机删除和返回该键值对。
    注意,列表有序,故pop弹出最后一项,而字典无序,并没有最后一个元素的概念,故popitem弹出随机的项。运用举例:
    在这里插入图片描述

集合

集合无序可变,元素不能重复。实际上,集合底层是字典实现,集合的所有元素都是字典 中的“键对象”,因此是不能重复且唯一的

集合创建和删除

  • 使用{}创建集合对象,并使用 add()方法添加元素,运用举例:
    在这里插入图片描述

  • 使用set(),将列表、元组等可迭代对象转成集合。运用举例如下:
    在这里插入图片描述
    注意:集合转换前若遇到重复数据,转换后将只保留其中一个。

  • remove()删除指定元素;clear()清空整个集合。运用举例:
    在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值