python—数据类型02-复合数据类型_元组(tuple)
送给自己一句话:Python 不难,难的是坚持;编程不难,难的是动手,祝你早日学成 Python,实现自己的目标
学习的脚步不要停歇,因为时代在进步我们更要进步,学到老活到老。希望能和大家共同成长,也希望有任何问题,大家评论、私信,一起交流进步
一个上进心极强的入门小白,虽然之前的文章总是更新着会断更,但是我相信这次我能把python这门语言能啃下来
如果超过两天断更了,更幸运的是你看到了这里,希望能够在最后一篇文章的评论区去催更,在这里感谢你的催更
点赞评论催更是我更新的最大动力!这样是代表着我被人看到了。
元组
是一种不可变的序列类型和列表十分类似,可以理解为是一种不可修改的列表
不可变:是python的一种不可变的有序的的序
创建方法:使用的是()进行创建——【圆括号可以省略,但是分割的逗号是不可以省略的】
可以返回多个返回值
当元组只有一个元素的时候,我们需要在元素后面多加一个逗号,才能代表我们创建的是元组形式
# -*- coding: utf-8 -*-
"""
@File : 2-数据类型.py
@Author : HY
@Version : 1.0
@Desc :
当元组只有一个元素的时候,我们需要在元素后面多加一个逗号,才能代表我们创建的是元组形式
"""
my_tuple = (2,)
my_tuple_1 = 2,
my_tuple_2 = 2
print(type(my_tuple))
print(type(my_tuple_1))
print(type(my_tuple_2))
'''
输出
'''
元组的下标索引和列表基本没有什么不一样的,元组也可以使用正向或是反向索引
# -*- coding: utf-8 -*-
"""
@File : 2-数据类型.py
@Author : HY
@Version : 1.0
@Desc :
元组的下标索引和列表基本没有什么不一样的,元组也可以使用正向或是反向索引
"""
my_tuple = 2,
my_list = [1, "hello", "counter", "miles", "name"]
my_tuple_1=(3,5,"q","f",my_list)
print(my_tuple_1[2])
print(my_tuple_1[-2])
print(my_tuple_1[-1])
'''
输出
q
f
[1, 'hello', 'counter', 'miles', 'name']
'''
元组的元素是无法修改的
# -*- coding: utf-8 -*-
"""
@File : 2-数据类型.py
@Author : HY
@Version : 1.0
@Desc :
元组的元素是无法修改的
"""
my_tuple_1 = (3, 5, "q", "f", "hello", "counter", "miles", "name")
my_tuple_1[2] = 3
'''
输出
my_tuple_1[2] = 3
TypeError: 'tuple' object does not support item assign
'''
元组有一种特殊情况就是当元组元素中有嵌套列表时,我们可以修改元组中嵌套的列表
【这是因为python的赋值语句不会创建对象的副本,仅仅创建引用。这里的my_list和my_tuple嵌入的列表共同引用同一个内存对象。改变my_tuple所引用的对象的值时,my_list的值也会被改变,反之亦然】这里涉及到的是深复制和浅复制
# -*- coding: utf-8 -*-
"""
@File : 2-数据类型.py
@Author : HY
@Version : 1.0
@Desc :
元组有一种特殊情况就是当元组元素中有嵌套列表时,我们可以修改元组中嵌套的列表
【这是因为python的赋值语句不会创建对象的副本,仅仅创建引用。
这里的my_list和my_tuple嵌入的列表共同引用同一个内存对象。
改变my_tuple所引用的对象的值时,my_list的值也会被改变,反之亦然】
这里涉及到的是深复制和浅复制
"""
my_tuple = (2,)
my_list = [1, "hello", "counter", "miles", "name"]
my_tuple_1 = (3, 5, "q", "f", my_list)
my_list[1] = 3
print(my_tuple_1[-1])
'''
输出
[1, 3, 'counter', 'miles', 'name']
'''
元组的查询
# -*- coding: utf-8 -*-
"""
@File : 2-数据类型.py
@Author : HY
@Version : 1.0
@Desc :
元组的查询
"""
my_tuple_1 = (3, 5, "q", "f", "q")
i = my_tuple_1.index(3)
# 查找返回值,返回的是下标索引值
# 注意:如果查找的元素不在元组中,index()方法将引发一个ValueError
# 并且只会返回查找到的第一个值的下标索引
j = my_tuple_1.count("q")
# 如果想使用count()方法计算指定范围内的元素出现次数。
k = len(my_tuple_1)
# len方法查询这个元组中的元素有多少
print(i)
print(j)
print(k)
'''
输出
0
2
5
'''
元组转换
列表转换元组
元组转换列表
字符串转换元组
在字符串转换元组的时候,字符串会被拆分为元组
# -*- coding: utf-8 -*-
"""
@File : 2-数据类型.py
@Author : HY
@Version : 1.0
@Desc :
列表转换元组
元组转换列表
字符串转换元组
在字符串转换元组的时候,字符串会被拆分为元组
"""
my_str = "good"
my_list = [1, "hello", "counter", "miles", "name"]
my_tuple = tuple(my_list)
print(type(my_tuple))
print(my_tuple)
my_list_1 = list(my_tuple)
print(type(my_list_1))
print(my_list_1)
my_tuple_1 = tuple(my_str)
print(type(my_tuple_1))
print(my_tuple_1)
'''
输出
(1, 'hello', 'counter', 'miles', 'name')
[1, 'hello', 'counter', 'miles', 'name']
('g', 'o', 'o', 'd')
'''
元组切片
# -*- coding: utf-8 -*-
'''
@File : 2-数据类型.py
@Author : HY
@Version : 1.0
@Desc :
元组切片
'''
person = ("张三", 25, ["篮球", "游泳", "北京"], {"城市": "北京"}) # 创建复杂元组
# 索引与切片
print(person[0]) # "张三"
print(person[-1]["城市"]) # "北京"(访问嵌套字典)
print(person[2][:2]) # ["篮球"](嵌套列表切片)
'''
输出
张三
北京
['篮球', '游泳']
'''
元组适合存储大量只读数据内存相比列表占用小;适合字典键、函数多返回值、配置








