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中字符编码简介、方法及使用建议
Jan 08 Python
在Python中使用__slots__方法的详细教程
Apr 28 Python
Python使用metaclass实现Singleton模式的方法
May 05 Python
Python实现的使用telnet登陆聊天室实例
Jun 17 Python
Python 中迭代器与生成器实例详解
Mar 29 Python
Python自动发邮件脚本
Mar 31 Python
Python3使用正则表达式爬取内涵段子示例
Apr 22 Python
flask-socketio实现WebSocket的方法
Jul 31 Python
实例讲解Python中浮点型的基本内容
Feb 11 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
Mar 27 Python
基于matplotlib xticks用法详解
Apr 16 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
Sep 16 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
mysql时区问题
2008/03/26 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
2009/08/17 PHP
ThinkPHP中RBAC类的四种用法分析
2014/11/24 PHP
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
对于Python中线程问题的简单讲解
2015/04/03 Python
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
django query模块
2019/04/20 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
驻村工作先进事迹
2014/08/14 职场文书
高中校园广播稿
2014/10/21 职场文书
不尊敬老师的检讨书
2014/12/21 职场文书
校车司机安全责任书
2015/05/11 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
素质拓展训练感想
2015/08/07 职场文书
外出考察学习心得体会
2016/01/18 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python