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操作Elasticsearch数据索引的教程
Apr 08 Python
python计算时间差的方法
May 20 Python
Python编程之event对象的用法实例分析
Mar 23 Python
Django项目中用JS实现加载子页面并传值的方法
May 28 Python
使用Django启动命令行及执行脚本的方法
May 29 Python
Python之循环结构
Jan 15 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
详解Python中正则匹配TAB及空格的小技巧
Jul 26 Python
10个Python面试常问的问题(小结)
Nov 20 Python
openCV提取图像中的矩形区域
Jul 21 Python
Python自动化办公Excel模块openpyxl原理及用法解析
Nov 05 Python
Python中super().__init__()测试以及理解
Dec 06 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数组操作汇总 php数组的使用技巧
2011/07/17 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
smarty模板中拼接字符串的方法
2014/02/14 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
javascript折半查找详解
2015/01/26 Javascript
JQuery的ON()方法支持的所有事件罗列
2015/02/28 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
2020/09/14 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
Python调用命令行进度条的方法
2015/05/05 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
python logging添加filter教程
2019/12/24 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
教师实习的自我鉴定
2013/10/26 职场文书
三个儿子教学反思
2014/02/03 职场文书
《假如》教学反思
2014/04/17 职场文书
5s标语大全
2014/06/23 职场文书
个人借款协议书范本
2014/11/17 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
创先争优个人总结
2015/03/04 职场文书
合同纠纷调解书
2015/05/20 职场文书
九年级英语教学反思
2016/02/15 职场文书
《浅水洼里的小鱼》教学反思
2016/02/16 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书