python 元组的使用方法


Posted in Python onJune 09, 2020

元组——tuple

列表非常适合用于存储在程序运行期间可能变化的数据集。

列表是可以修改的,但元组是不可修改的

Python将不能修改的值称为不可变的,而不可变的列表被称为元组

1. 元组的创建和删除

(1)使用赋值运算符直接创建元组

语法:

tuplename = (element1, element2, element3, ....)

​在Python中,元组使用一对小括号将所有的元素括起来,但是小括号不是必须的,只要将一组值用逗号分隔开,Python就可以使其为元组。

verse = "渔舟唱晚", "高山流水", "出水莲", "汉宫秋月"	# 元组

​ 如果要创建的元组中只有一个元素,需要在元素的后面加上逗号,否则Python使其为字符串

verse1 = ('一片冰心在玉壶')	# 字符串
verse2 = ('一片冰心在玉壶',)	# 元组

(2)创建空的元组

emptytuple = ()

(3)创建数值元组

可以使用tuple()函数直接将range()函数循环出来的结果转换为数值元组

tuple(data)

data-可迭代的对象

(4)删除元组

del tuplename

del语句在实际开发中,并不常用,因为Python自带的垃圾回收机制会自动销毁不用的元组,所以即使我们不手动将其删除,Python也会自动将其回收。

2. 访问元组元素

通过for循环

coffee_name = ('蓝山', '卡布奇诺', '曼特宁', '摩卡', '麝香猫', '哥伦比亚')
print('您好,欢迎光临 ~ 伊米咖啡馆 ~\n我店有:')
for name in coffee_name:
  print(name, "咖啡", end=' ')
'''

输出

您好,欢迎光临 ~ 伊米咖啡馆 ~
我店有:
蓝山 咖啡 卡布奇诺 咖啡 曼特宁 咖啡 摩卡 咖啡 麝香猫 咖啡 哥伦比亚 咖啡
'''

for + enumerate()

enumerate():——枚举

该函数用于将一个可遍历的数据对象(如列表、元组)组合为一个索引序列,同时列出数据和数据下标,一般在for循环中使用。

team = ('火箭', '勇士', '开拓者', '雷霆', '爵士', '马刺')
for index, item in enumerate(team):
  if index % 2 == 0:
    print(item + '\t\t', end='')
  else:
    print(item)

输出

火箭  勇士
开拓者  雷霆
爵士  马刺

3. 修改元组的元素

元组是不可变序列,所以我们不能对它的单个元素值进行修改。通过对元组进行重新赋值进行修改。

​元组和元组是可以进行连接的,但连接的两者必须都是元组才行,否则是错误的,要连接的元组只有一个元素时,一定不要忘记后面的逗号。

4. 元组推导式

>>> import random
>>> random_number = (random.randint(10,100) for i in range(10))
>>> random_number
<generator object <genexpr> at 0x0000021A177BDED0>	# 生成器对象
>>> tuple(random_number)			# 转换成元组
(28, 63, 34, 98, 96, 36, 87, 35, 25, 44)

​从上面的执行结果可以看出,使用元组推导式生成的结果并不是一个元组或列表,而是一个生成器对象,这一点和列表推导式不同。

​要将该生成器对象转换成元组,使用tuple()方法,转换成列表,使用list()方法。

示例一:

# 通过__next()__方法遍历
# 在Python2.x中__next()__方法对应的是next()方法,也是用于遍历生成器对象的。
>>> number = (i for i in range(3))
>>> number
<generator object <genexpr> at 0x0000021A1781EA20>
>>> number.__next__()
0
>>> number.__next__()
1
>>> number.__next__()
2
>>> number.__next__()
Traceback (most recent call last):
 File "<pyshell#11>", line 1, in <module>
  number.__next__()
StopIteration		# 停止迭代

示例二:

# 通过for循环遍历
>>> number = (i for i in range(4))
>>> number
<generator object <genexpr> at 0x0000021A1781EA98>
>>> for i in number:
	print(i, end='')
  
0123
>>> print(tuple(number))
()

从上面的两个示例中可以看出:无论通过那种方法遍历,如果想要再次使用该生成器对象,必须重新创建一个生成器对象,因为遍历后该生成器对象就不存在了。

5. 元组与列表的区别

(1)列表可变,元组不可变,除非整体替换。

(2)列表可以用append()、extend()、insert()、remove()、pop()实现添加和删除功能,而元组没有这几个方法。

(3)列表支持通过切边进行修改和访问,而元组只支持访问,不支持修改,再不进行任何修改时,建议使用元组。

(4)元组比列表的访问和处理速度快。

(5)列表不能作为字典的键,而元组可以。

以上就是python 元组的使用方法的详细内容,更多关于python元组使用的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python 两个列表的差集、并集和交集实现代码
Sep 21 Python
python数据清洗系列之字符串处理详解
Feb 12 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
pyqt5的QComboBox 使用模板的具体方法
Sep 06 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
Oct 17 Python
Python list列表中删除多个重复元素操作示例
Feb 27 Python
如何通过python画loss曲线的方法
Jun 26 Python
python基础教程之while循环
Aug 14 Python
python等待10秒执行下一命令的方法
Jul 19 Python
Python eval函数介绍及用法
Nov 09 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 28 Python
教你如何用Python实现人脸识别(含源代码)
Jun 23 Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 #Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 #Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
Jun 09 #Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 #Python
在pycharm中debug 实时查看数据操作(交互式)
Jun 09 #Python
Python devel安装失败问题解决方案
Jun 09 #Python
python属于跨平台语言码
Jun 09 #Python
You might like
PHP 各种排序算法实现代码
2009/08/20 PHP
php程序之die调试法 快速解决错误
2009/09/17 PHP
php 生成静态页面的办法与实现代码详细版
2010/02/15 PHP
浅析php单例模式
2014/11/25 PHP
Yii学习总结之安装配置
2015/02/22 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
利用Dectorator分模块存储Vuex状态的实现
2019/02/05 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
详解python中的json的基本使用方法
2016/12/21 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
python 实现A*算法的示例代码
2018/08/13 Python
python自动化生成IOS的图标
2018/11/13 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
keras 权重保存和权重载入方式
2020/05/21 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
中餐厅主管的职责范文
2014/02/04 职场文书
治超工作实施方案
2014/05/04 职场文书
团队口号大全
2014/06/06 职场文书
英文演讲稿开场白
2014/08/25 职场文书
感恩老师演讲稿400字
2014/08/28 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
合作与交流自我评价
2015/03/09 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js