42-元组类型内置方法

元组类型内置方法

一. 元组(tuple)

元组是不可变的列表,即元组的值不可更改,因此元组一般只用于只存不取的需求。也因此元组可以被列表取代掉,所以元组相比较列表使用的很少。元组相比较列表的优点为:列表的值修改后,列表的结构将会发生改变,而元组只需要存储,因此列表在某种程度上而言需要占用更多的内存。但是目前工业上内存已经不是问题了,所以工业上元组一般不会使用。

1.1 用途:多个装备、多个爱好、多门课程等

1.2 定义:在()内可以有多个任意类型的值,逗号分隔元素

my_teacher = ('nick','jason', 'tank', 'sean')
print(f"my_teacher: {my_teacher}")

# my_teacher: ('nick', 'jason', 'tank', 'sean')
name_str = ('lwx')  # ()只是普通包含的意思
name_tuple1 = ('lwx','hanye')
name_tuple = ('lwx',) # 只有一个元素,最后要加上逗号

print(f"type(name_str): {type(name_str)}")
print(f"type(name_tuple): {type(name_tuple1)}")
print(f"type(name_tuple): {type(name_tuple)}")

二.元组的内置方法

2.1 优先掌握

2.1.1 按索引取值
name = ('lwx','hanye','forever')
print(name[0])
print(name[0:2])

# lwx
# ('lwx', 'hanye')
2.1.2 切片(顾头不顾尾,步长)
name = ('lwx','hanye','forever','happiness','enjoying')
print(name[0:4:2])

# ('lwx', 'forever')
2.1.3 长度(len)
name = ('lwx','hanye','forever','happiness','enjoying')
print(len(name))

# 5                     
2.1.4 成员运算(in /not in)
name = ('lwx','hanye','forever','happiness','enjoying')
print('lwx' in name)

# True
2.1.5 循环
name = ('lwx','hanye','forever','happiness','enjoying')
for name in name :
    print(name)

# lwx
# hanye
# forever
# happiness
# enjoying
2.1.6 计数(count)
name = ('lwx','hanye','forever','hanye','happiness','lwx','enjoying')
print(name.count('lwx'))
print(name.count('hanye'))

# 2
# 2
2.1.7 索引(index())
name = ('lwx','hanye','forever','hanye','happiness','lwx','enjoying')
print(name.index('happiness'))
print(name.index('hanye'))

# 4
# 1

2.2 存一个值or多个值

多个值

2.3 有序or无序

有序,可以按照索引取值

2.4 可变还是不可变

元组一旦义就不可以进行修改,所以是不可遍数数据类型

三. 元组和列表的区别

name = ['lwx','hanye','forever','hanye','happiness','lwx','enjoying']
print(id(name[6]))
name[6] = 'happy'
print(id(name[6]))

# 90515040
# 90441856

列表可变的原因是:索引对应的值的内存地址是可以改变的

元组不可变得原因是:索引所对应的值的内存地址是不可以改变的,或者反过来说,只要索引对应值的内存地址没有改变,那么元组是始终没有改变的。

name = (['lwx','hanyhe'],'forever','happiness')
print(f'id(name[0]:{id(name[0])}')
print(f'id(name[0]:{id(name[1])}')
print(f'id(name[0]:{id(name[2])}')

print('****************************************************')

name[0][0]='luowenxiang'
print(name)
print(f'id(name[0]:{id(name[0])}')

# id(name[0]:56571384
# id(name[0]:85920000
# id(name[0]:56911296
# ****************************************************
# (['luowenxiang', 'hanyhe'], 'forever', 'happiness')
# id(name[0]:56571384

转载于:https://www.cnblogs.com/LWX-YEER/p/11379629.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值