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中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
Python文件的读写和异常代码示例
Oct 31 Python
Python3之读取连接过的网络并定位的方法
Apr 22 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
Python实现多级目录压缩与解压文件的方法
Sep 01 Python
python中join()方法介绍
Oct 11 Python
python pygame实现方向键控制小球
May 17 Python
Django之提交表单与前后端交互的方法
Jul 19 Python
python能做什么 python的含义
Oct 12 Python
Python numpy数组转置与轴变换
Nov 15 Python
python实现图片,视频人脸识别(dlib版)
Nov 18 Python
Python基础之函数嵌套知识总结
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
如何去掉文章里的 html 语法
2006/10/09 PHP
php 分页类 扩展代码
2009/06/11 PHP
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
Javascript Object 对象学习笔记
2014/12/17 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
python使用递归的方式建立二叉树
2019/07/03 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
python eventlet绿化和patch原理
2020/11/21 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
实习自我鉴定模板
2013/09/28 职场文书
大学生职业生涯规划书参考模板
2014/03/05 职场文书
成品库仓管员岗位职责
2014/04/06 职场文书
旅游安全协议书
2014/04/21 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
新郎答谢词
2015/01/04 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python
日本动漫十大公认神作:第五现已全网禁播,《死亡笔记》在榜
2022/03/18 日漫
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers