元组

概念:

​ 元组是一个有序,可重复,并不能修改元素值的序列

特点:

  1. 与list相似,可存储不同数据类型的数据
  2. 不可变数据类型
  3. 定义:(1, 2, 3, ),在后面加上一个

元组的定义:

tup = (1,2,3,4,5)
tup2 = 1,2,3
type(tup2)
>>> type(tup2)
<class 'tuple'>
tup = (1,2,"小龙女",3,"林青霞",)
print(tup)
(1, 2, '小龙女', 3, '林青霞',)
tup[0] = 1	# 元素值不能修改
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
------------------------------------
>>> tup = (1,2)		#类型
>>> type(tup)
<class 'tuple'>
>>> tup = (1)		# 一个元素不加',' 就不是元组
>>> type(tup)
<class 'int'>
>>> tup = (1,)		#加了 ',' 即是元组
>>> type(tup)
<class 'tuple'>

如果元组中有类似于列表可变序列的数据,只能修改可变序列【列表】的元素值,不违背元组的说法。

>>> tup = (1,2,3,["张三", "李四", "万物"], {"name":"杨贵妃","age" :"95"})
>>> tup
(1, 2, 3, ['张三', '李四', '万物'], {'name': '杨贵妃', 'age': '95'})
>>> type(tup)
<class 'tuple'>
>>> tup[0]	# 索引查找元素
1
>>> tup[1]
2
>>> tup[3]	# 元素为列表
['张三', '李四', '万物']
>>> tup[3][0]	# 利用[索引][子索引]的方式获取值
'张三'
>>> tup[3][2] = "赵柳"	#修改元组中列表的值
>>> tup[3][2]	# 发现是可以修改子列表的数值,但是不能修改元组本身的值
'赵柳'
>>> print(tup)
(1, 2, 3, ['张三', '李四', '赵柳'], {'name': '杨贵妃', 'age': '95'})

删除元组

  • del 元组
tup = (1,2,3,)
print(tup)
(1,2,3,)
del tup
print(tup)	# 删除后就不能输出了
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'tup' is not defined

元组运算符

Python表达式 结果 描述
len((1,2,3,4,5)) 5 计算元组的长度
(1,2,3,) + (11,22,33,) (1,2,3,11,22,33) 元组拼接成新的元组
(1,2,3,)* 2 (1,2,3,1,2,3) 复制元组输出
2 in (1,2,3,) True 判断元素2是否存在元组中
tup[0] 1 输出元组中指定索引的元素

遍历

  • 枚举遍历index,value

    enumerate将其组成一个索引序列,利用它可以同时获得索引和值

    tup = (12, 33, 45, 2, 3, 66)
    >>> for index, value in enumerate(tup):
    ...     print(index, ": ", value)
    ...
    0 :  12
    1 :  33
    2 :  45
    3 :  2
    4 :  3
    5 :  66
    
  • 迭代输出元组中的每一个元素

>>> for i in tup:
...     print(i, end = " ")
...
1 2 3 ['张三', '李四', '赵柳'] {'name': '杨贵妃', 'age': '95'} >>>
  • 通过索引迭代
>>> for i in range(len(tup)):
...     print(tup[i])
...
1
2
3
['张三', '李四', '赵柳']
{'name': '杨贵妃', 'age': '95'}

二维元组

>>> tuple = ((1,2,3,4,5), ("张三","郭靖","王五","汛期","王泽"))
>>> for i in tuple:
...     for j in range(len(i)):
...             print(i[j], end = " ")
...     print()
...
1 2 3 4 5
张三 郭靖 王五 汛期 王泽

三维元组

>>> tuple2 = (("湖南",("长沙", "衡阳", "娄底", "株洲")),("广东", ("东莞", "珠海", "深圳")))
>>> for i in tuple2:
...     print(i[0])
...     for j in i[1]:
...             print(j, end = " ")
...     print()
...
湖南
长沙 衡阳 娄底 株洲
广东
东莞 珠海 深圳

内置函数

  • max(tuple);获取元组中的最大值

    tup = (12,33,45,2,3,66)
    max(tup)
    66
    
  • min(tuple);获取元组中的最小值

    tup = (12,33,45,2,3,66)
    min(tup)
    2
    
  • tuple(list);将列表转化为元组

    >>> tuple([1,222,131,41,4,1,])
    (1, 222, 131, 41, 4, 1)
    

Python元组

相关文章: