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 29 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
Nov 20 Python
python利用sklearn包编写决策树源代码
Dec 21 Python
Python中py文件引用另一个py文件变量的方法
Apr 29 Python
Django实现支付宝付款和微信支付的示例代码
Jul 25 Python
Python设计模式之模板方法模式实例详解
Jan 17 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
如何运行.ipynb文件的图文讲解
Jun 27 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
Python sorted排序方法如何实现
Mar 31 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 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数据缓存技术
2007/02/14 PHP
php中支持多种编码的中文字符串截取函数!
2007/03/20 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
thinkPHP下ueditor的使用方法详解
2015/12/26 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
js loading加载效果实现代码
2009/11/24 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
AngularJS 事件发布机制
2018/08/28 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
微信小程序用户拒绝授权的处理方法详解
2019/09/20 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
Python实现抓取网页并且解析的实例
2014/09/20 Python
初学Python函数的笔记整理
2015/04/07 Python
Python实现控制台进度条功能
2016/01/04 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
PyQt5每天必学之日历控件QCalendarWidget
2018/04/19 Python
Python字典遍历操作实例小结
2019/03/05 Python
Python如何读写字节数据
2020/08/05 Python
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
JVM是一个编译程序还是解释程序
2012/09/11 面试题
标准化管理实施方案
2014/02/25 职场文书
2015年财务科工作总结范文
2015/05/13 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
element tree树形组件回显数据问题解决
2022/08/14 Javascript