网站后台超链接怎么做,网站敏感目录漏洞修复,滁州市南谯区建设局网站,杭州网站前端建设系列文章目录
Python序列之列表 Python序列之元组 系列文章目录前言一、元组是什么#xff1f;二、元组操作1.元组的创建#xff08;1#xff09;通过()创建。小括号可以省略。#xff08;2#xff09;通过tuple()函数创建。#xff08;3#xff09;通过生成器推导式创…系列文章目录
Python序列之列表 Python序列之元组 系列文章目录前言一、元组是什么二、元组操作1.元组的创建1通过()创建。小括号可以省略。2通过tuple()函数创建。3通过生成器推导式创建。 2.元组的访问1元组的元素不能修改2元组的元素访问、index()、count()、切片等操作和列表一样。3通过zip()函数合成元组后访问 3. 元组的排序4.元组的统计 三、总结 前言
前面我们已经讲了Python中的列表Python序列之列表。今天我们再来看一下Python中另一种常用的序列——元组。 提示以下是本篇文章正文内容下面案例可供参考
一、元组是什么 列表属于可变序列可以任意修改列表中的元素。 元组属于不可变序列不能修改元组中的元素。因此元组没有增加元素、修改元素、删除元素相关的方法。 因此我们只需学元组的创建和删除元素的访问和计数即可。元组支持如下操作
索引访问切片操作连接操作成员关系操作比较运算操作计数元组长度len()、最大值max()、最小值min()、求和sum()等
二、元组操作
1.元组的创建
1通过()创建。小括号可以省略。
如果元组只有一个元素则必须后面加逗号。这是因为解释器会把(1)解释为整数1(1,)解释为元组。
a (1,)
b (1)
c 1,print(type(a)) # 输出class tuple
print(type(b)) # 输出class int
print(type(c)) # 输出class tuple2通过tuple()函数创建。
语法tuple(可迭代的对象)
a tuple() # 创建一个空元组 ()
b tuple(yyy) # (y, y, y)
c tuple(range(3)) # (0, 1, 2)
d tuple([2, 3, 4]) # (2, 3, 4)总结
tuple()可以接收列表、字符串、其他序列类型、选代器等生成元组。list()可以接收元组、字符串、其他序列类型、选代器等生成列表。
3通过生成器推导式创建。
从形式上看生成器推导式与列表推导式类似只是生成器推导式使用小括号。
列表推导式直接生成列表对象生成器推导式生成的不是列表 也不是元组 而是一个生成器对象。
我们可以通过生成器对象转化成列表或者元组。也可以使用生成器对象的__next__()方法进行遍历或者直接作为迭代器对象来使用。不管什么方式使用元素访问结束后如果需要重新访问其中的元素必须重新创建该生成器对象换句话说生成器对象只能遍历一次是一次性用品。
a (x*10 for x in range(5))
print(a) # 输出generator object genexpr at 0x000001A5D2CC44A0
b tuple(a)
print(b) # 输出(0, 10, 20, 30, 40)
c tuple(a)
print(c) # 输出()上面第二次使用生成器a生成元组c的时候竟然生成了一个空元组这说明生成器对象是一次性用品。
下面使用__next__()方法的遍历最后出现了报错也可以说明生成器的一次性属性
a (x for x in range(3))
print(a.__next__()) # 输出0
print(a.__next__()) # 输出1
print(a.__next__()) # 输出2
print(a.__next__()) # 输出报错StopIteration2.元组的访问
1元组的元素不能修改
a (20, 10, 30, 9, 8)
a[3]33 # 报错TypeError: tuple object does not support item assignment2元组的元素访问、index()、count()、切片等操作和列表一样。
a (30, 5, 8, 9, 8)
print(a[1]) # 输出5
print(a[1:3]) # 输出(5, 8)
print(a[:4]) # 输出(30, 5, 8, 9)
print(a.count(8)) # 输出2
print(a.index(30)) # 输出03通过zip()函数合成元组后访问
zip(列表1,列表2,...)将多个列表对应位置的元素组合成为元组并返回这个zip对象。如果各个迭代器的元素个数不一致则返回列表长度与最短的对象相同。
a [10, 20, 30]
b [40, 50, 60]
c [70, 80, 90, 100]
d zip(a, b, c)
print(d) # 输出zip object at 0x00000262542A4E00
e list(d)
print(e) # 输出[(10, 40, 70), (20, 50, 80), (30, 60, 90)]zip在英文中意味“拉链”在Python中是将多个元组像拉拉链一样合成为一个列表方便使用for循环遍历。
那zip的实战意义在哪呢给你举个实际的例子就明白了
authors [吴承恩, 曹雪芹, 罗贯中, 施耐庵]
books [西游记, 红楼梦, 三国演义, 水浒传]
for author, book in zip(authors, books):print(authorbook)打印效果如下
吴承恩西游记
曹雪芹红楼梦
罗贯中三国演义
施耐庵水浒传3. 元组的排序
列表关于排序的方法list.sort()是修改原列表对象由于元组是不可修改的故元组没有该方法。如果要对元组排序只能使用内置函数sorted(tupleObj)并生成新的列表对象。
a (3, 6, 1, 100, 5, 4)
b sorted(a)
print(b) # 输出[1, 3, 4, 5, 6, 100]4.元组的统计
a (1, 2, 3)
print(max(a)) # 输出3
print(min(a)) # 输出1
print(sum(a)) # 输出6三、总结
元组的核心特点是不可变序列。元组的访问和处理速度比列表快。与整数和字符串一样元组可以作为字典的键列表则永远不能作为字典的键使用。