IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 容器型数据类型——元组 -> 正文阅读

[Python知识库]容器型数据类型——元组

容器型数据类型——元组

Python中容器型的数据类型肯定不止列表一种,接下来我们学习另一种重要的容器型数据类型,它的名字叫元组(tuple)。

注意!!!:元组—>不可变的容器 只能读操作 不能写操作

元组的基本运用

fruits = ('hello',)#一元组 有几个元素就是几元组 只有一个元素是注意后面有逗号
fruits = ('hello')  #字符串
#字面量语法
fruits1 = ('apple', 'banana', 'grape')
#重复运算
print(fruits1 * 3)
#成员运算  返回的是布尔值
print('apple'in fruits1)
print('grape' not in fruits1)
#合并运算
fruits2 = ('pitaya','litchi')
fruits3 = fruits1 + fruits2
print(fruits3)
#索引和切片  只能进行读操作 不能进行写操作
print(fruits3[4],fruits3[-5])
print(fruits3[1:4])
print(fruits3[1:4:2])
print(fruits3[::-1])
# 循环遍历元组中的元素
for fruit in fruits:
    print(fruit)
    
print(fruits3.index('apple'))#查找apple的位置
print(fruits3.count('apple'))#查找apple的次数

元组的应用

打包和解包操作。

当我们把多个用逗号分隔的值赋给一个变量时,多个值会打包成一个元组类型;当我们把一个元组赋值给多个变量时,元组会解包成多个值然后分别赋给对应的变量,如下面的代码所示。

# 打包
a = 1, 10, 100
print(type(a), a)    # <class 'tuple'> (1, 10, 100)
# 解包
i, j, k = a
print(i, j, k)       # 1 10 100

在解包时,如果解包出来的元素个数和变量个数不对应,会引发ValueError异常,错误信息为:too many values to unpack(解包的值太多)或not enough values to unpack(解包的值不足)。

a = 1, 10, 100, 1000
# i, j, k = a             # ValueError: too many values to unpack (expected 3)
# i, j, k, l, m, n = a    # ValueError: not enough values to unpack (expected 6, got 4)

有一种解决变量个数少于元素的个数方法,就是使用星号表达式,我们之前讲函数的可变参数时使用过星号表达式。有了星号表达式,我们就可以让一个变量接收多个值,代码如下所示。需要注意的是,用星号表达式修饰的变量会变成一个列表,列表中有0个或多个元素。还有在解包语法中,星号表达式只能出现一次。

a = 1, 10, 100, 1000
i, j, *k = a
print(i, j, k)          # 1 10 [100, 1000]
i, *j, k = a
print(i, j, k)          # 1 [10, 100] 1000
*i, j, k = a
print(i, j, k)          # [1, 10] 100 1000
*i, j = a
print(i, j)             # [1, 10, 100] 1000
i, *j = a
print(i, j)             # 1 [10, 100, 1000]
i, j, k, *l = a
print(i, j, k, l)       # 1 10 100 [1000]
i, j, k, l, *m = a
print(i, j, k, l, m)    # 1 10 100 1000 []

#还有就是

*a, b ,c = 5, 10, 15, 20, 25  #输出的值为对应的列表
print(a)               #[5,10,15]
print(b)               #[20]
print(c)               #[25]
print('--'*20)
a, *b ,c = 5, 10, 15, 20, 25
print(a)               #[5]
print(b)               #[10,15,20]
print(c)               #[25]
print('--'*20)
a, b ,*c = 5, 10, 15, 20, 25
print(a)               #[5]
print(b)               #[10]
print(c)               #[15,20,25]

交换两个变量的值

python不像其他语言一样需要中间变量才能转换两个变量的值

如a 与 b 两个变量交换值 在c语言当中 就需要以下步骤

c = a

b = c

a = b

而python则不需要直接写成以下格式即可 a赋给bb赋给a

a, b = b, a

交换三给变量的值同样用此方法abc的值互换,即b赋给ac赋给ba赋给c

a, b, c = b, c, a

列表与元组的转换

# 将元组转换成列表

info = ('李四', 170, True, '贵州贵阳')
print(list(info))       # ['李四', 170, True, '贵州贵阳']

# 将列表转换成元组

fruits = ['apple', 'banana', 'orange']
print(tuple(fruits))    # ('apple', 'banana', 'orange')

总结

? 列表和元组都是容器型的数据类型,即一个变量可以保存多个数据。列表是可变数据类型元组是不可变数据类型,所以列表添加元素、删除元素、清空、排序等方法对于元组来说是不成立的。但是列表和元组都可以进行拼接成员运算索引和切片这些操作,就如同之前讲到的字符串类型一样,因为字符串就是字符按一定顺序构成的序列,在这一点上三者并没有什么区别。我们推荐大家使用列表的生成式语法来创建列表,它很好用,也是Python中非常有特色的语法。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 11:35:59  更:2021-07-29 11:36:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/8 22:51:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码