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完全新手教程
Feb 08 Python
Python制作CSDN免积分下载器
Mar 10 Python
Python实现从百度API获取天气的方法
Mar 11 Python
在Python下尝试多线程编程
Apr 28 Python
Python内建模块struct实例详解
Feb 02 Python
Python实现OpenCV的安装与使用示例
Mar 30 Python
python用BeautifulSoup库简单爬虫实例分析
Jul 30 Python
浅谈Python批处理文件夹中的txt文件
Mar 11 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
python修改字典键(key)的方法
Aug 05 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 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 定界符 使用技巧
2009/06/14 PHP
简单实用的.net DataTable导出Execl
2013/10/28 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
js压缩利器
2007/02/20 Javascript
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
详解JavaScript中的异常处理方法
2015/06/16 Javascript
jquery实现九宫格大转盘抽奖
2015/11/13 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
JS实现排行榜文字向上滚动轮播效果
2019/11/26 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
python实现一个简单的ping工具方法
2019/01/31 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
如何用Python 加密文件
2020/09/10 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
汽车检测与维修个人求职信
2013/09/24 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
门市房租房协议书
2014/12/04 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
python获取对象信息的实例详解
2021/07/07 Python
Web应用开发TypeScript使用详解
2022/05/25 Javascript