7.Python【序列】- 元组

认识元组

元组(tuple)是不可变序列,也是Python 最基本的数据结构之一,具有如下特点。

  • 元组是有序的数据结构。内部数据的位置排列固定。
  • 通过下标索引访问内部数据。支持选代和切片的读操作。
  • 元组是不可变的数据类型。不能添加、删除和更新元组内的数据。
  • 内部数据统称为元素,元素的值可以重复,可以为任意类型的数据,如数字、字符串、列表、元组、字典和集合等。
  • 列表的字面值:使用小括号包含所有元素,元素之间使用逗号分隔。

元组与列表的区別:

  • 元组字面值使用小括号表示,而列表字面值使用中括号表示。
  • 与列表相比,元组不能增加元素,没有append()和 extend()方法;也不能删除元素,没有remove()和 pop()方法。
  • 列表不能作为字典的键、集合的元素,而元组可以作为哈希值使用。

元组的优点:

  • 元组比列表操作速度快。
  • 如果定义一个常量集,并且仅用于读取操作,建议优先选用元组结构。如果对一组数据进行 “写保护”,建议使用元组,而不是列表。如果必须改变这些值,则需要执行从元组到列表的转换。

相互转换

  • 使用内置的 tuple()函数可以将一个列表转换为元组。
  • 使用内置的 list()函数可以将一个元组转换为列表。

构造元组

以小括号作为起始和终止标识符,其中包含0个或多个元素,元素之间通过逗号分隔,元组字面值的语法格式如下:

(元素1,元素2,元素3,…,元素n)
t1 = () # 空元组
t2 = (1,2,3) 
t3 = 1,2,3 # 小括号不是必须的
t4 ="a"1,1,[1,2,3] # 定义不同类型的元组

使用tuple()函数可以将列表、range 对象、字符串或者其他类型的可迭代数据转换为元组。

t1 = tuple((1,2,3)) # 元组转列表
t2 = tuple([1,2,3]) # 列表转元组

应用元组

格式化输出

name = 'zhangsan'
gender = 'male'
tup = (name,gender)
print('name:%s,age:%s'%(name,gender)) # 输出 name:zhangsan , age:male
print('name:%s,age:%s'%tup) # 输出 name:zhangsan, age:male

多重赋值

a = 1
b = 2
a,b = b,a # 元组b,a解包
print(a) # 输出为2
print(b) # 输出1

数据保护

元组只能读取,不能写入,如果将列表转换为元组,可以保护数据不被随意改动。

name list = ["zhangsan", "lisi"', "wangwu"]
name_tuple = tuple(name_list)
print(name tuple) # 输出 (zhangsan, lisi, wangwu)
name list = list(name tuple)
print(name list) # 输出 [zhangsan, list, wangwu]

数据切片

tup= (3,4,5,6,7,9,11,13,15,17)
print(tup[::]) # 返回包含所有元素的新元组
print(tup[::-1) # 逆序的所有元素:(17,15,13,11,9,7,6,5,4,3)
print(tup[3::]) # 从下标3开始的所有元素:(6,7,9,11,13,15,17)
print(tup[3:6]) #  输出 (6,7,9)
print(tup[100:]) # 空元组 ()
print(tup[100]) # 抛出异常
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有请小发菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值