元组初识

元组的认识

首先,我们来认识一下元组:

# 定义一个元组
uesr_tuple = ("zhangsan", "lisi", "wangwu")
# 定义一个空元组
empty_tuple = ()

元组的作用和定义

  • 通过前面的学习,我们知道,列表通常用来存储相同类型的数据;而元组在实际开发中,通常用来存储不同类型的数据
  • 元组(Tuple)与列表相似,不同之处在于元组的元素不能修改
  • 元组表示多个元素组成的序列;用于存储一串信息,不同数据之间用逗号隔开;
  • 元组的索引从0开始;

元组的定义语法

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
变量名 = (数据1, 数据2, 数据3,...)
eg:
uesr_tuple = ("zhangsan", "lisi", "wangwu")

定义元组和取值

# 定义一个常规元组
user_tuple = ("xiaoming", 18, 175)
# 注意,取值时,索引不能超过元组的元素数量范围,否则报错
user_tuple[0]
'xiaoming'
user_tuple[2]
175

# 定义空元组;
empty_tuple = ()
type(empty_tuple)  # tuple

# 定义一个单元素元组;
# 如果元组中只有一个数据,要在那一个数据后面加逗号,否则该元组变量会被python解释器认为是括号内数据的数据类型;
single_tuple = (5)
type(single_tuple)  # int

single_tuple = (5,)
type(single_tuple)  # tuple

元组的操作函数

查看元组操作函数

在ipython交互式下,新建一个元组empty_tuple;empty_tuple. 按一下tab键,即可查看元组函数

In [1]: t_tuple = ()   

In [2]: t_tuple.
t_tuple.count  t_tuple.index  

In [2]: t_tuple.

由此可见,元组自带的操作函数只有两个:

t_tuple.count  t_tuple.index 

取值和取索引(index)

user_info = ("xiaoming", 20, 181, "xiaoming")

print(user_info[1])  # 10
# 已经知道元组内容,希望获取该内容在元组中的位置
# 如果有两个相同的数据,取索引会取出现的第一个
print(user_info.index("xiaoming"))  # 0

统计计数(count,len)

user_info = ("xiaoming", 20, 181, "xiaoming")
# 使用元组自带的函数统计元素出现个数
print(user_info.count("xiaoming"))  # 2

# 使用关键字 统计元组中的元素个数
print(len(user_info))  # 4

元组其他扩展

元组 循环遍历

元组遍历就是 从头到尾 依次从元组中取数据;
每次循环都将 从元组中顺序的读取出来的数据放在临时变量中,然后执行相同的操作。
使用for进行迭代遍历。

user_tuple = ["zhangsan", 20, 181]
for i in user_tuple:
    # 因为通常元组的元素数据类型不同,所以一般很少遍历元组做操作,
    # 除非确定元组中每一个元素的数据类型
    print(i)

在Python中,可以使用for循环遍历所有非数字型类型的变量:列表,元组,字典以及字符串

元组应用场景

  • 函数的参数和返回值;一个函数可以接收任意多个参数,或者一次返回多个数据。
  • 格式字符串,格式化字符串后面的()本质上就是一个元组。
  • 保护数据安全,列表不能被修改。

元组和格式化字符串

格式化后面的括号和内容,本质上就是元组;我们可以先定义一个元组,然后在格式化后面%元组,一样能输出;
同时,我们甚至可以将print括号里面的函数拿出来,定义成一个变量,再用print输出。

# 四者的输出结果都一样
# zhangsan 的年龄是 20, 身高是 181
name = "zhangsan"
age = 20
height = 181
print("%s 的年龄是 %d, 身高是 %d" % (name, age, height))

userinfo = ("zhangsan", 20, 181)

print("%s 的年龄是 %d, 身高是 %d" % (userinfo[0], userinfo[1], userinfo[2]))

# 也可以这样玩
print("%s 的年龄是 %d, 身高是 %d" % userinfo)

# 还可以这样玩
info = "%s 的年龄是 %d, 身高是 %d" % userinfo
print(info)

元组和列表之间的转换

元组转列表:list()
列表转元组:tuple()

num_list = [2,1,4,3]
type(num_list)  # list

num_tuple = tuple(num_list)
type(num_tuple)  # tuple

num_list2 = list(num_tuple)
type(num_list2)  # list
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄