栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python学习笔记5——元组

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python学习笔记5——元组

1、关于元组
元组是不可变序列,没有增删改操作
可变序列有列表、字典
不可变序列有字符串、元组

#对于列表
lst = [10,20,30]
print(id(lst))
lst.append(100)
print(id(lst))   #内存地址不变

输出结果:
1327015940616
1327015940616

内存地址不变

#对于字符串
s = 'hello'
print(id(s))
s = s + 'world'
print(id(lst))   #内存地址改变了

输出结果:
1327016441456
1327015940616

内存地址改变了

元组和列表从外表上看就差在一个()和 [ ]

2、元组的创建方式
2.1 第一种方式:使用()

t = ("hello","world",98)
print(t)
print(type(t))

输出结果:
(‘hello’, ‘world’, 98)

也可以不加括号

#可以不用加括号
t = "hello","world",98
print(t)
print(type(t))

输出结果:
(‘hello’, ‘world’, 98)

但只有一个元素时,

#但只有一个元素时,
t = "hello"
print(t)
print(type(t))

t = ("hello")
print(t)
print(type(t))
#加不加括号都会输出str类型

输出结果:
hello

hello

加不加括号都会输出str类型

当元组只有一个元素时,要加小括号()和逗号,

#当元组只有一个元素时,要加小括号()和逗号,
t = ("hello",)   #如果元组中只有一个元素,逗号不能省
print(t)
print(type(t))

输出结果:
(‘hello’,)

2.2 第二种创建方式:用内置函数tuple()

t1 = tuple(("hello","world",98))
print(t1)
print(type(t1))

输出结果:
(‘hello’, ‘world’, 98)

3、空元组的创建
复习一下空列表、空字典的创建

#空列表  两种方法
lst = []
lst1 = list()
print('空列表',lst,lst1)

输出结果:
空列表 [] []

#空字典  两种方法
d = {}
d1 = dict()
print('空字典',d,d1)

输出结果:
空字典 {} {}

空元组的创建也有两种方式

#空元组
t4 = ()
t5 = tuple()
print('空元组',t4,t5)

输出结果:
空元组 () ()

4、为什么要将元组设置成不可变序列

如果元组中对象本身就是不可变对象,则不能再引用其他对象
如果元组中对象本身是可变对象,则可变对象的引用不可改变,但数据可以改变(添、减内容)

t = (10,[20,30],9)
#尝试将t[1]改为100
#t[1] = 100  #会报错,元素是不允许修改元素的
#由于[20,30]是列表,而列表是可变序列,所以可以向列表中添加元素,而列表的内存地址不变
print(id(t))
print(id(t[1]))
t[1].append(100)
print(t[1])
print(id(t[1]))
print(t)
print(id(t))

输出结果:
2519522472888
2519518761480
[20, 30, 100]
2519518761480
(10, [20, 30, 100], 9)
2519522472888

从结果看来,在元组内的列表对象的数据之后,列表与元组的内存地址都未发生改变;因此增添改不可变对象内的可变对象的数据是被允许的

5、元组元素的遍历

t = ('hello','world',98)
for item in t:
    print(item)

输出结果:
hello
world
98

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/715417.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号