Python——— 元组

(一)初识元组tuple

Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。列表属于可变序列,可以任意修改列表中的元素。元组属于不可变序列,不能修改元组中的元素。

       因此,元组没有增加元素、修改元素、删除元素相关的方法。 我们只需学元组的创建和删除,元素的访问和计数即可。元组支持如下操作:

(二)元组的创建

        通过()创建元组。

小括号可以省略。a = (10,20,30) 或者 a = 10,20,30

        如果元组只有一个元素,则必须后面加逗号。这是因为解释 器会把(1) 解释为整数 1 (1,) 解释为元组。 如 a = 10,表示元组,而a=10,表示整数10。
 具体代码:
a = (10)
print(type(a))#<class 'int'>
a = (10,)    #或者 a = 1,
print(type(a))#<class 'tuple'>
 

  通过tuple()创建元组 tuple(可迭代的对象)

a = tuple() #创建一个空元组对象
b = tuple("abc")
c = tuple(range(3))
d = tuple([2,3,4])
总结:
  • tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。 

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

(三)元组的元素访问和计数

元组的元素不能修改

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

a = (20,10,30,9,8)
print(a[1])#10
print(a[1:3])#(10, 30)
print(a[:4])#(20, 10, 30, 9)
    列表关于排序的方法 list.sorted() 是修改原列表对象,元组没有该方法。如果要对元组排序,只能使用内置函数 sorted(tupleObj),并生成新的列表对象。
 
a = (20,10,30,9,8)
b = sorted(a)   #b是新对象,内容是:[8, 9,10, 20, 30]
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
e = list(d) #列表:[(10, 40, 70), (20, 50,80), (30, 60, 90)]
print(e)
生成器推导式创建元组
          从形式上看,生成器推导式与列表推导式类似,只是生成器推导式使用小括号。
     
         列表推导式直接生成列表对象,生成器推导式生成的不是列表也不是元组,而是一个生成器对象。
        我们可以通过生成器对象,转化成列表或者元组。也可以使用生成器对象的 __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)   #<generator object <genexpr> at0x0000021C80BE2880>
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

(四)修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,具体代码如下:

tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
 
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
 
# 创建一个新的元组
tup3 = tup1 + tup2
print tup3

(五) 无关闭分隔符

任意无符号的对象,以逗号隔开,默认为元组,如下实例:

扫描二维码关注公众号,回复: 16226521 查看本文章

(六)元组运算符

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

Python 表达式 结果 描述
len((1, 2, 3)) 3 计算元素个数
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 复制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print x, 1 2 3 迭代

(七)元组内置函数

Python元组包含了以下内置函数

 方法 及描述
cmp(tuple1,tuple2) 比较两个元组元素。
len(tuple) 计算元组元素个数。
max(tuple) 返回元组中元素最大值。
min(tuple) 返回元组中元素最小值。
tuple() tuple(seq)
将列表转换为元组。
元组的核心特点是:不可变序列。
2 元组的访问和处理速度比列表快。
3 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。

猜你喜欢

转载自blog.csdn.net/qq_63976098/article/details/131527489