10个示例带你掌握python中的元组


Posted in Python onNovember 23, 2020

数据结构是任何编程语言的关键部分。为了创建强大而性能良好的产品,必须非常了解数据结构。

在本文中,我们将研究Python编程语言的重要数据结构,元组。

元组是用逗号分隔并括在括号中值的集合。与列表不同,元组的元素是不可变的。不变性可以视为元组的识别特征。

我将通过示例解释元组的功能和对其的操作。

一、创建元组

元组由括号中的值组成,并用逗号分隔开

a=(3,4)
print (a)
print (type(a))
# (3, 4)
# <class 'tuple'>

元组可以存储不同数据类型的值和重复值。

a = (3, 3, 'x', [1,2])
print (a)
# (3, 3, 'x', [1, 2])
print (type(a))
# <class 'tuple'>

我们也可以不使用括号创建元组。用逗号分隔的一系列值将创建一个元组。

a = 3, 4, 5, 6
print (type(a))
# <class 'tuple'>

二、创建没有元素或只有1个元素的元组

创建没有元素的空元组

a = ()
print (type(a))
# <class 'tuple'>

创建具有1个元素的元组,需要在元素后面加上逗号,否则当做元素的普通变量类型处理

a = (3)
print (type(a))
# <class 'int'>
b = ([1,2])
print (type(b))
# <class 'list'>

正确的创建方法

a = (3,)
print (type(a))
# <class 'tuple'>
b = ([1,2],)
print (type(b))
# <class 'tuple'>

三、元组是可迭代的

像列表一样,你可以遍历一个元组

a = (1, 2, 3)
for i in a:
   print (i**2)
   '''
   1
   4
   9
   '''

四、元组元素的访问

利用下标索引访问

a = (3, 5, 'x', 5)
print (a[0])
print (a[-1])
# 3
# 5

利用切片访问

a = (1, 2, 5, 6, 7)
print (a[-2:])
# (6, 7)
print (a[:3])
# (1, 2, 5)

五、元组当前存放的元素是不可变的,但是可以具有可变元素

不变性可能是元组最具有识别性的特征。我们不能修改元组中的元素。

a = (3, 5, 'x', 5)
a[0] = 7 
# error

但是,元组可以包含可变元素,例如列表。

a = ([1,2], ['x', 'y'])
a[0][0] = 99
a[1][0] = 't'
print (a)
# ([99, 2], ['t', 'y'])

六、元组的排序

元组当前存放的元素是不可变的,我们无法用sort进行排序

但是sorted可以将元组作为参数,并返回一个已经排序好的列表,注意,返回的是一个排序好的列表而不是一个排序好的元组。

a = (3, 5, 8, 2)
b = sorted(a)
print (b)
# [2, 3, 5, 8]
print (type(b))
# <class 'list'>

10个示例带你掌握python中的元组

七、元组的常用函数

可以使用len()获取元组的长度

a = (3, 0, 2)
print (len(a))
# 3

max(),min()返回元组中元素的最大,最小值

a = (3, 0, 2)
print (max(a))
print (min(a))
# 3
# 0

tuple()用于将列表转换为元组

a = [1,2,3,4]
print (tuple(a))
# (1,2,3,4)

八、count()和index()

count()可以用来统计元组中某个值出现的次数

a = (1, 'x', 1, 1, 'x')
print (a.count('x'))
# 2
print (a.count(1))
# 3

index()可以用来返回元组中元素的下标索引

a = (1, 'x', 3, 5, 'x')
print (a.index('x'))
# 1
print (a.index(1))
# 0

tips:如果一个值在元组中多次出现,index()会返回最先出现的索引

九、利用"+"拼接元组

我们可以利用“+”拼接元组得到一个新元组

a = (1, 2)
b = ('x', 'y')
c = a + b
print (c)
# (1, 2, 'x', 'y')

十、用元组让函数返回多个值

一般的,一个函数只能有一个返回值。我们可以用元组让函数返回多个值。以下函数接受一个数组,并返回该数组的总和与数组长度。

def count_sum(arr):
   count = len(arr)
   sum = arr.sum()
   return count, sum

该函数返回的是具有2个项目的元组:

import numpy as np
arr = np.random.randint(10, size=8)
def count_sum(arr):
   count = len(arr)
   sum = arr.sum()
   return count, sum
a = count_sum(arr)
print (a)
# (8, 39)
print (type(a))
# <class 'tuple'>

总结

元素和列表相似,都是值的集合,最大的区别就是不变性了。如有错误,疏漏,欢迎在留言区指正,希望能帮到python的初学者。

原文来自 python 客栈,欢迎关注

10个示例带你掌握python中的元组

以上就是10个示例带你掌握python中的元组的详细内容,更多关于python 元组的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中捕捉详细异常信息的代码示例
Sep 18 Python
基于随机梯度下降的矩阵分解推荐算法(python)
Aug 31 Python
让代码变得更易维护的7个Python库
Oct 09 Python
python实现名片管理系统
Nov 29 Python
搭建python django虚拟环境完整步骤详解
Jul 08 Python
Python实现基于SVM的分类器的方法
Jul 19 Python
Django通过dwebsocket实现websocket的例子
Nov 15 Python
无需压缩软件,用python帮你操作压缩包
Aug 17 Python
详解python with 上下文管理器
Sep 02 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
pycharm + django跨域无提示的解决方法
Dec 06 Python
Python中快速掌握Data Frame的常用操作
Mar 31 Python
详解anaconda安装步骤
Nov 23 #Python
Python可以用来做什么
Nov 23 #Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
Nov 22 #Python
python里反向传播算法详解
Nov 22 #Python
python动态规划算法实例详解
Nov 22 #Python
python全栈开发语法总结
Nov 22 #Python
scrapy在python爬虫中搭建出错的解决方法
Nov 22 #Python
You might like
PHP中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
JavaScript中switch判断容易犯错的一个细节
2014/08/27 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
javascript 中select框触发事件过程的分析
2017/08/01 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
Flask解决跨域的问题示例代码
2018/02/12 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
什么是python的函数体
2020/06/19 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
挑战杯创业计划书的写作指南
2014/01/07 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
授权委托书
2014/09/17 职场文书
护士自荐信范文
2015/03/25 职场文书
旅游投诉信范文
2015/07/02 职场文书
小学班长竞选稿
2015/11/20 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书