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写入CSV文件的方法
Jul 08 Python
Python实现包含min函数的栈
Apr 29 Python
Python实现在线音乐播放器
Mar 03 Python
Python数据可视化正态分布简单分析及实现代码
Dec 04 Python
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
Dec 31 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
Jun 13 Python
Django之创建引擎索引报错及解决详解
Jul 17 Python
给我一面国旗 python帮你实现
Sep 30 Python
python装饰器练习题及答案
Nov 01 Python
Python基础之高级变量类型实例详解
Jan 03 Python
python 追踪except信息方式
Apr 25 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性能优化 产生高度优化代码
2011/07/22 PHP
一个典型的PHP分页实例代码分享
2011/07/28 PHP
PHP乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
JavaScript 密码强度判断代码
2009/09/05 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
2017/01/16 Javascript
用js将long型数据转换成date型或datetime型的实例
2017/07/03 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
Python制作刷网页流量工具
2017/04/23 Python
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
python日志模块logbook使用方法
2019/09/19 Python
Python算法中的时间复杂度问题
2019/11/19 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
机械设计专业应届生求职信
2013/11/21 职场文书
玄武湖导游词
2015/02/05 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
党纪处分决定书
2015/06/24 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS