元组:创建、遍历等

#元组
"""
1.python的内置数据结构之一,是一个不可变序列
2.不可变序列与可变序列
   不可变序列:字符串、元组,没有增删改的操作
   可变序列:列表、字典,可以对序列进行增删改操作,对象地址不发生变更
3.元组的创建方式
    3.1直接小括号 t=('python',90,'hello')
    3.2使用内置函数tuple()  t=tuple(('python','hello',90))
    3.3只包含一个元组的元素需要使用逗号和小括号 t=(10,)
"""
#可变序列,列表、字典
lst=[10,20,30]
print(id(lst))#2338042688960
lst.append(100)
print(id(lst))#2338042688960

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

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

print('第一种创建方式中不使用括号')
t='python','world',98
print(t)
print(type(t))

print('如果元组中只有一个元素,逗号不能省略')
t=('python',)
print(t,type(t))

print('第二种创建方式,使用内置函数tuple')
t=tuple(('python','world',98))
print(t)
print(type(t))

lts=[]
lst1=list()

d={}
d1=dict()

t=()
t1=tuple()
print('空列表',lts,lst1)
print('空字典',d,d1)
print('空元组',t,t1)

"""
为什么要将元组设置为不可变序列:
    多任务环境下,同时操作对象不需要加锁,在程序中尽量使用不可变序列
注意事项:元组中存储的是对象的引用,
    1.1如果元组中对象本身不可变对象,则不能再引用其他对象
    1.2如果元组中的对象是可变对象,则可变对象的引用不允许改变,但数据可以改变

"""
t=(10,[20,30],40)
print(t)
print(type(t))
print(t[0],type(t[0]),id(t[0]))
print(t[1],type(t[1]),id(t[1]))#[20, 30] <class 'list'> 2269113169792
print(t[2],type(t[1]),id(t[2]))
#尝试将100加入列表当中
#由于[20,30]为列表,列表是可变序列,所以可以向列表中添加元素,列表的内存地址不变
t[1].append(100)
print(t,id(t[1]))#(10, [20, 30, 100], 40) 2269113169792

#元组的遍历
"""
元组是可迭代对象,可以用for...in进行遍历
t=tuple(('python','world',98))
for item in t:
    print(item)
"""
t=('python','world',90)
print('第一种获取元组的方式,使用索引')
print(t[0])
print(t[1])
print(t[2])

print('第二种获取元组的方式,遍历')
for item in t:
    print(item)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值