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的正则表达式re模块的常用方法
Mar 09 Python
Python文件和目录操作详解
Feb 08 Python
详解python中的json的基本使用方法
Dec 21 Python
Python MD5加密实例详解
Aug 02 Python
浅谈flask中的before_request与after_request
Jan 20 Python
Python 元类实例解析
Apr 04 Python
Python中将dataframe转换为字典的实例
Apr 13 Python
Pandas实现数据类型转换的一些小技巧汇总
May 07 Python
Python基于time模块表示时间常用方法
Jun 18 Python
python实现猜数游戏(保存游戏记录)
Jun 22 Python
python 自动化偷懒的四个实用操作
Apr 11 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
May 13 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
oracle资料库函式库
2006/10/09 PHP
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
php常用字符串处理函数实例分析
2014/11/22 PHP
WordPress开发中用于标题显示的相关函数使用解析
2016/01/07 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
2019/10/16 PHP
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
举例讲解Python的Tornado框架实现数据可视化的教程
2015/05/02 Python
详解Python中break语句的用法
2015/05/14 Python
详解python分布式进程
2018/10/08 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
全球领先的中国制造商品在线批发平台:DHgate
2020/01/28 全球购物
某公司面试题
2012/03/05 面试题
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
毕业生护理专业个人求职信范文
2014/01/04 职场文书
超级搞笑检讨书
2014/01/15 职场文书
一份创业计划书范文
2014/02/08 职场文书
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
三潭印月的导游词
2015/02/12 职场文书
SQL Server Agent 服务无法启动
2022/04/20 SQL Server