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 smallseg分词用法实例分析
May 28 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
May 24 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
Dec 19 Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 Python
Python命令行解析模块详解
Feb 01 Python
Python基于递归实现电话号码映射功能示例
Apr 13 Python
对python3新增的byte类型详解
Dec 04 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
Mar 13 Python
Python实现字符串匹配的KMP算法
Apr 04 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
Aug 27 Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 Python
Python tcp传输代码实例解析
Mar 18 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
我的论坛源代码(一)
2006/10/09 PHP
php中使用GD库做验证码
2016/03/31 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
JS option location 页面跳转实现代码
2008/12/27 Javascript
简洁短小的 JavaScript IE 浏览器判定代码
2010/03/21 Javascript
JavaScript Eval 函数使用
2010/03/23 Javascript
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
JS JSON对象转为字符串的简单实现方法
2013/11/18 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
python如何在列表、字典中筛选数据
2018/03/19 Python
python如何生成网页验证码
2018/07/28 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
关于python中导入文件到list的问题
2020/10/31 Python
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
办公室文员自荐书
2014/02/03 职场文书
董事长助理岗位职责
2014/02/18 职场文书
甜品店创业计划书
2014/08/14 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
毕业欢送晚会主持词
2019/06/25 职场文书
将Python代码打包成.exe可执行文件的完整步骤
2021/05/12 Python
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS