一篇搞定python基础(九)

举报
rivers 发表于 2022/04/17 08:03:32 2022/04/17
【摘要】 python 基础(九),本篇文章主要介绍python内置数据结构之一---元组。它是一个不可变序列

二十四、元组

24.1、什么是元组

  • 什么是元组:python内置数据结构之一,是一个不可变序列
  • 可变序列:列表、字典,可以对序列执行增删改操作,对象地址不会发生更改
  • 不可变序列:字符串、元组,没有增删改操作
'''可变序列:列表、字典'''
lst=[10,20,45]
print(id(lst))
lst.append(300)
print(id(lst))

结果为:
2039625955392
2039625955392

'''不可变序列:字符串、元组'''
s='hello'
print(id(s))
s=s+'world'
print(id(s))

结果为:
2039623780976
2039623835184

24.2、元组的创建方式

'''元组的创建方式'''
'''第一种,使用()'''
t=('python','world',98)
print(t)
print(type(t))

结果为:
('python', 'world', 98)
<class 'tuple'>

'''第二种,使用内置函数tuple()'''
t1=tuple(('python','world',98))
print(t1)
print(type(t1))

结果为:
('python', 'world', 98)
<class 'tuple'>

'''第三种,省略小括号'''
t2='python','world',98
print(t2)
print(type(t2))

结果为:
('python', 'world', 98)
<class 'tuple'>

'''第四种,小括号和逗号(逗号不能省略)'''
t3=('python',)
print(t3)
print(type(t3))

结果为:
('python',)
<class 'tuple'>

'''空列表的创建方式'''
lst=[]
lst1=list()
'''空字典的创建方式'''
d={}
d1=dict()
'''空元组的创建方式'''
t4=()
t5=tuple()

print('空列表',lst,lst1)
print('空字典',d,d1)
print('空元组',t4,t5)

结果为:
空列表 [] []
空字典 {} {}
空元组 () ()

24.3、为什么要将元组设计成不可变序列

''''''
'''为什么要将元组设计成不可变序列:在多任务环境下,同时操作对象时不需要加锁
注意:
元组中存储的是对象的引用:
    1.如果元组中对象是不可变对象,则不能再引用其他对象
    2.如果元组中对象是可变对象,则可变对象的引用不允许改变,但数据可以改变(数据可变,引用不可变)
'''
t=(10,[20,30],9)
print(t)
print(type(t))
print(t[0],type(t[0]),id(t[0]))
print(t[1],type(t[1]),id(t[1]))
print(t[2],type(t[2]),id(t[2]))

结果为:
(10, [20, 30], 9)
<class 'tuple'>
10 <class 'int'> 2180072761936
[20, 30] <class 'list'> 2180079630720
9 <class 'int'> 2180072761904

'''尝试将t[1]修改为100'''
print(id(100))

结果为:
2180072953296
#t[1]=100  #元组是不允许修改元素的

'''由于[20,30]为列表,列表是可变序列,所以可以向列表中添加元素,而列表的内存地址不变'''
t[1].append(100)#向列表中添加元素
print(t,id(t[1]))

结果为:
(10, [20, 30, 100], 9) 2180079630720

24.4、元组的遍历

'''元组的遍历'''
t=('python','world',98)
'''方法一:使用索引'''
print(t[0])
print(t[1])
print(t[2])
#print(t[3])#IndexError: tuple index out of range

结果为:
python
world
98

'''方法二:使用for...in循环'''
for item in t:
    print(item)
    
结果为:
python
world
98
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200