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中使用第三方模块的教程
Apr 27 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
Nov 09 Python
pandas数据集的端到端处理
Feb 18 Python
python画微信表情符的实例代码
Oct 09 Python
超实用的 30 段 Python 案例
Oct 10 Python
Win下PyInstaller 安装和使用教程
Dec 25 Python
Python3 shutil(高级文件操作模块)实例用法总结
Feb 19 Python
Python pandas 列转行操作详解(类似hive中explode方法)
May 18 Python
Python web如何在IIS发布应用过程解析
May 27 Python
Django Form常用功能及代码示例
Oct 13 Python
python3处理word文档实例分析
Dec 01 Python
解决Tkinter中button按钮未按却主动执行command函数的问题
May 23 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笔记之:日期函数的使用介绍
2013/04/24 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
JavaScript语言中的Literal Syntax特性分析
2007/03/08 Javascript
Javascript 二维数组
2009/11/26 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
2017/05/25 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
解析Python编程中的包结构
2015/10/25 Python
Python调用系统底层API播放wav文件的方法
2017/08/11 Python
详解Python用三种方式统计词频的方法
2019/07/29 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
美国在线家装零售商:Build.com
2016/09/02 全球购物
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
大专学生推荐信范文
2013/11/19 职场文书
国培计划培训感言
2014/03/11 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
《角的度量》教学反思
2016/02/18 职场文书
2016年区委书记抓基层党建工作公开承诺书
2016/03/25 职场文书
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers
Python利用capstone实现反汇编
2022/04/06 Python