【python学习笔记】09 元祖、字典、集合 常用操作及字典底层原理

本文详细介绍了Python中的元祖、字典和集合的操作,包括创建、访问、修改和删除。元祖是不可变序列,字典是键值对的无序可变序列,而集合是无序且不重复的元素集合。重点讨论了字典的底层原理,如散列表和键的散列值计算。还涵盖了序列解包、zip函数和生成器推导式在数据处理中的应用。
摘要由CSDN通过智能技术生成

本系列为自己学习Python的笔记,如有误,欢迎大家指正

元祖tuple

列表属于可变序列,可以任意自古列表中的元素,元素属于不可变序列,不能修改元祖中的元素,因此,元祖没有增加元素、修改元素、删除元素等相关的方法。

元祖支持如下操作:

  1. 索引访问
  2. 切片操作
  3. 连接操作
  4. 成员关系操作
  5. 比较运算操作
  6. 计数:元祖长度len() 最大值max() 最小值min() 求和sum()

元祖的创建

  1. 通过()创建元祖,小括号可以省略

    a = (10,20,30) 或者 a = 10,20,30

    如果元祖只有一个元素,则必须后面加逗号,这是因为解释器会把(1)解释为整数1 (1,)解释为元祖。

    a = (1,)
    type(a)
    
  2. 通过tuple()创建

    tuple(可迭代的对象)

    a = tuple()
    b = tuple("a,b,c")
    c = tuple([2,3,4])
    d = tuple(range(3))
    

    总结:tuple()可以接收列表、字符串、其他序列类型、迭代器生成元祖。

    list()可以接收元祖、字符串、其他序列类型、迭代器等生成列表

元祖的元素访问和计数

  1. 元祖的元素不能修改

    a = (10,20,30,40)
    a[3] = 15 #报错 TypeError
    
  2. 元祖的元素访问和列表一样,只不过返回的仍然是元祖对象

    a = (10,20,30)
    a[1]
    a[0:2]
    
  3. 列表关于排序的方法list.sorted()是修改原列表对象,元祖没有该方法,如果要对元祖排序,只能使用内置函数sorted(tupleObj),并生成新的列表对象

zip

zip(列表1,列表2…)将多个列表对应的位置的元素组合成为元祖,并返回这个zip对象。

a = [10,20,30]
b = [40,50,60]
c = [70,80,90]
d = zip(a,b,c)
list(d)#[(10,40,70),(20,50,80),(30,60,90)]

生成器推导式创建元祖

从形式上看,生成器推导式与列表推导式类似,只是生成器推导式使用小括号,列表推导式直接生成列表对象,生成器推导式生成的不是列表也不是元祖,而是一个生成器对象。

我们可以通过生成器对象,转换成列表或者元祖,也可以使用生成器对象的__next__()方法进行遍历,或者直接作为迭代器对象来使用。不管什么方法,元素访问结束后,如果需要重新访问其中的元素,必须重新创建该元素的生成器对象。

s = (x*2 for x in range(5))#迭代器对象
s
tuple
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值