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实现list反转实例汇总
Nov 11 Python
Python实现获取域名所用服务器的真实IP
Oct 25 Python
使用python绘制常用的图表
Aug 27 Python
浅谈python中的数字类型与处理工具
Aug 02 Python
利用python爬取斗鱼app中照片方法实例
Dec 03 Python
python+matplotlib绘制饼图散点图实例代码
Jan 20 Python
Python 2.7中文显示与处理方法
Jul 16 Python
python 五子棋如何获得鼠标点击坐标
Nov 04 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
基于Python 的语音重采样函数解析
Jul 06 Python
Python OpenCV中的numpy与图像类型转换操作
Dec 11 Python
python实现A*寻路算法
Jun 13 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+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
php利用嵌套数组拼接与解析json的方法
2017/02/07 PHP
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
Vue.js获取被选择的option的value和text值方法
2018/08/24 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
2020/05/09 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
JavaScript快速调试的两个技巧
2020/11/04 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
[04:22]DSPL第二期精彩集锦:残血反杀!
2014/12/10 DOTA
详解Python验证码识别
2016/01/25 Python
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
心理健康心得体会
2014/01/02 职场文书
高中语文教学反思
2014/01/16 职场文书
2014年社区个人工作总结
2014/12/02 职场文书
高中语文教学反思范文
2016/02/16 职场文书
一篇文章弄懂Python中的内建函数
2021/08/07 Python
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers