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多线程用法实例详解
Jan 15 Python
python复制与引用用法分析
Apr 08 Python
python使用tkinter实现简单计算器
Jan 30 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
Feb 24 Python
Python基于FTP模块实现ftp文件上传操作示例
Apr 23 Python
PyCharm安装第三方库如Requests的图文教程
May 18 Python
利用Python如何批量更新服务器文件
Jul 29 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
Python 实现遥感影像波段组合的示例代码
Aug 04 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
Feb 07 Python
python实现人像动漫化的示例代码
May 17 Python
去除python中的字符串空格的简单方法
Dec 22 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 if 想到的些问题
2008/03/22 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
Web打印解决方案之证件套打的实现思路
2016/08/29 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
Python日志logging模块功能与用法详解
2020/04/09 Python
python使用正则表达式匹配txt特定字符串(有换行)
2020/12/09 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
美国著名手表网站:Timepiece
2017/11/15 全球购物
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
法学院方阵解说词
2014/01/29 职场文书
会计毕业生自荐书
2014/06/12 职场文书
学校志愿者活动总结
2014/06/27 职场文书
欢迎词范文
2015/01/27 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书
Python时间操作之pytz模块使用详解
2022/06/14 Python
服务器SVN搭建图文安装过程
2022/06/21 Servers