元组初识
元组的认识
首先,我们来认识一下元组:
# 定义一个元组uesr_tuple = ("zhangsan", "lisi", "wangwu")# 定义一个空元组empty_tuple = ()
元组的作用和定义
- 通过前面的学习,我们知道,列表通常用来存储相同类型的数据;而元组在实际开发中,通常用来存储不同类型的数据。
- 元组(Tuple)与列表相似,不同之处在于元组的元素不能修改;
- 元组表示多个元素组成的序列;用于存储一串信息,不同数据之间用逗号隔开;
- 元组的索引从0开始;
元组的定义语法
变量名 = (数据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) # intsingle_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, 身高是 181name = "zhangsan"age = 20height = 181print("%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" % userinfoprint(info)
元组和列表之间的转换
元组转列表:list()
列表转元组:tuple()num_list = [2,1,4,3]type(num_list) # listnum_tuple = tuple(num_list)type(num_tuple) # tuplenum_list2 = list(num_tuple)type(num_list2) # list