Python序列的元组类型介绍

描述

介绍

列表属于可变序列,可以任意修改列表中的元素。

元组属于不可变序列,不能修改元组中的元素。

元组特点: 有序, 不可变,

小括号 ( )

操作

元组没有增加元素、修改元素、删除元素相关的方法。

只需学元组的创建和删除,元素的访问和计数即可。

元组支持如下操作:

索引访问

切片操作

连接操作

成员关系操作

比较运算操作

计数:元组长度len()、最大值max()、最小值min()、求和sum()等

元组的创建

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

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

元组tuple

列表属于可变序列,可以任意修改列表中的元素

元组属于不可变序列,不能修改元组中的元素.

因此,元组没有增加元素、修改元素、删除元素相关的方法

a = (1)

print(type(a))

一般创建方式

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

a = (1,)

b =

2,

print(type(a), type(b))

通过tuple()创建元组

a = tuple()

b =

tuple("abc")

c = tuple(range(3))

d = tuple([2, 3, 4])

print(a, b, c,

d)

元组的访问和计数

元组的元素访问和计数

1 元组的元素不能修改

a = [20, 10, 30, 9, 8]

元组的元素访问、index()、count()、切片等操作,和列表一样

print(a[1])

print(a[1:3])

print(a[:4])

print(a[2:])

print("元组的计数:",

len(a))

print("指定元素出现的个数:", a.count(8))

列表关于排序的方法list.sorted()是修改原列表对象,元组没有该方法

如果要对元组排序,只能使用内置函数sorted(tupleObj),并生成新的列表对象

a = (20, 10, 30, 9, 8)

b =

sorted(a)

print(b) # [8, 9, 10, 20,

30]

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

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

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同

a = [1, 2, 3]

b = [4, 5, 6]

c = [7, 8,

9]

d = zip(a, b, c)

print(d) #
0x000001F1E4FBE280>

e =

list(d)

print(e)

生成器推导式创建元组

生成器推导式创建元组

1.从形式上看,生成器推导式与列表推导式类似,只是生成器推导式使用小括号

2.列表推导式直接生成列表对象,生成器推导式生成的不是列表也不是元组,而是一个生成器对象

3.我们可以通过生成器对象,转化成列表或者元组。也可以使用生成器对象的 next () 方法进行遍历,或者直接作为迭代器对象来使用。

不管什么方式使用,元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象

列表推导式: [0, 2, 4, 6, 8]

a =

[x * 2 for x in range(5)]

print(a)

列表推导式直接生成列表对象,生成器推导式生成的不是列表也不是元组,而是一个生成器对象

s = (x * 2 for x in

range(5))

print(s)

我们可以通过生成器对象,转化成列表或者元组。也可以使用生成器对象的 next ()

方法进行遍历,或者直接作为迭代器对象来使用

b = tuple(s)

print(b) # (0, 2, 4, 6, 8)

c =

tuple(s)

不管什么方式使用,元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象

print(c) # ()

s2 = (x for x in range(3))

print(s2. next ()) #

0

print(s2. next ()) # 1

print(s2. next ()) # 2

print(s2. next ()) # 报错:StopIteration

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分