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的字典和列表的使用中一些需要注意的地方
Apr 24 Python
python获取本地计算机名字的方法
Apr 29 Python
Python实现复杂对象转JSON的方法示例
Jun 22 Python
Python操作word常见方法示例【win32com与docx模块】
Jul 17 Python
Python匿名函数及应用示例
Apr 09 Python
python导包的几种方法(自定义包的生成以及导入详解)
Jul 15 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
python读取多层嵌套文件夹中的文件实例
Feb 27 Python
Django基于客户端下载文件实现方法
Apr 21 Python
在Django中使用MQTT的方法
May 10 Python
Python一行代码实现自动发邮件功能
May 30 Python
python中urllib包的网络请求教程
Apr 19 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/06/05 PHP
php5.5新数组函数array_column使用
2013/07/08 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
Javascript中parseInt的正确使用方式
2018/10/17 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
jQuery实现动态添加和删除input框实例代码
2019/03/26 jQuery
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
python snownlp情感分析简易demo(分享)
2017/06/04 Python
详细分析python3的reduce函数
2017/12/05 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
PyQt5实现简单的计算器
2020/05/30 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
网络工程师的自我评价
2013/10/02 职场文书
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
工作时间上网检讨书
2014/02/03 职场文书
优良学风班总结材料
2014/02/08 职场文书
跑操口号
2014/06/12 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python