python中如何调用或修改元组中的元素_python 元组的使用方法

元组——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

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

at 0x0000021A1781EA20>

>>> number.__next__()

0

>>> number.__next__()

1

>>> number.__next__()

2

>>> number.__next__()

Traceback (most recent call last):

File "", line 1, in

number.__next__()

StopIteration# 停止迭代

示例二:

# 通过for循环遍历

>>> number = (i for i in range(4))

>>> number

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元组使用的资料请关注脚本之家其它相关文章!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【WebRTC---入门篇】(十三)WebRTC音视频数据采集

音视频采集API false表示不采集,true表示采集 WebRTC API适配 获取音视频设备的访问权限 通过 return navigator.mediaDevices.enumerateDevices();/*返回一个promise,为了获取音视频的权限*/ 视频约束

android按钮点击toast,关于button点击事件中setOnClick等元素的解读以及方法?以及toast的位置以及作用?...

此文末参考链接:此段代码的教程以及使用接口的方式、switch语句的教程链接为链接1.汇总里说的有更多的实现方法,为链接2。文中链接为视觉统一,链接均于文末,以上为方便文中跳转,加了文中的跳转链接。以下代码为我学习b…

java用什么编译器_Java用Java编译

java用什么编译器在上一篇文章中,我写了关于如何在运行时生成代理的内容,我们已经了解到生成Java源代码的程度。 但是,要使用该类,必须对其进行编译,并将生成的字节码加载到内存中。 那是“编译”时间。 幸运的是&…

app登录界面背景 css_计算机毕业设计中Java web实现简登录页面(MyBatis+jsp+servlet+html+css+javascript)...

点击上方“蓝字”,关注我们.本文利用MyBatisjspservlethtmlcssjavascript实现了一个简单的登录页面。对用户输入的用户名和密码就行校验,校验通过则登录成功,密码和用户信息保存在mysql表中,通过MyBatis访问(MyBatis相关知识可参考…

android strm,Android 关于so文件的随记

1.背景:项目中要集成商汤的活体检测sdk,2.遇到的问题:商汤提供的demo 可以正常运行,但是将sdk集成至项目中时一直报错,但是商汤侧却没办法提供具体的报错原因3.解决问题:反编译商汤的源码发现,报…

工业互联网二级节点建设_建设者还是二传手?

工业互联网二级节点建设不用说,每个对象都需要先创建才能使用。 无论我们是在谈论域,框架,库还是任何其他类型的类,都没有关系。 当您的代码是面向对象的时,这些类仅是对象的定义。 创建对象之前,不能使用它…

android 指针是什么意思,Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析(3)...

提供引用计数器的类RefBase我们就暂时介绍到这里,后面我们再结合智能指针类一起分析,现在先来看看强指针类和弱指针类的定义。强指针类的定义我们在前面介绍轻量级指针的时候已经见到了,就是sp类了,这里就不再把它的代码列出来了。…

【WebRTC---入门篇】(十五)WebRTC信令服务器实现

如何使用socket.io发送消息 io代表整个节点

气味识别应用_代码气味–第二部分

气味识别应用在上一篇文章《代码气味–第一部分》中 ,我谈到了膨胀器:它们是代码气味,可以识别为长方法,大型类,原始痴迷,长参数列表和数据块。 在这一篇中,我想深入研究面向对象的滥用者和变更…

activiti高亮显示图片_如今透明LED显示屏成为广告橱窗,它们之间有什么关联?...

如今我们在街道行走时,我们就会看到各种玻璃橱窗,这是商家想利用橱窗进行不同产品宣传角度。其实无论是海报、灯箱或是实物展示,这些都是商家通过橱窗广告进行来吸引消费者,而现在是5G时代到来使橱窗数字化营销成为了一种新的趋势…

theme editor android,谷歌宣布将于下月停用 Material Theme Editor

使用 Material Theme Editor,开发人员可创建和自定义 Material 主题,包括颜色、形状、版式等等。在 Material Theme Editor 中,可根据不同部分依次选择颜色,并应用于所有组件,还可调整对比度,根据单一颜色自…

【WebRTC---入门篇】(十六)端对端1V1传输基本流程

RTCPeerConnection 媒体协商 setLocalDescription方法 ,收集所有候选者。 setRemoteDescription方法, 放到远端的描述槽中。 协商状态变化

pytorch dataset_【小白学PyTorch】16.TF2读取图片的方法

<>扩展之tensorflow2.0 | 15 TF2实现一个简单的服装分类任务小白学PyTorch | 14 tensorboardX可视化教程小白学PyTorch | 13 EfficientNet详解及PyTorch实现小白学PyTorch | 12 SENet详解及PyTorch实现小白学PyTorch | 11 MobileNet详解及PyTorch实现小白学PyTorch | 10 …

android 硬件对接,Android 对接硬件串口篇

private DispQueueThread DispQueue;private AssistBean AssistData;private SerialControl ComA;Overridepublic void initView() {ComA new SerialControl();//开启串口DispQueue new DispQueueThread();//开启线程实时获取数据DispQueue.start();//线程启动AssistData ge…

【WebRTC---入门篇】(十七)实现1V1音视频实时互动直播系统

STUN/TURN服务器搭建 详细搭建过程 RTCPeerConnection

junit5和junit4_JUnit 5 –架构

junit5和junit4现在我们知道如何设置JUnit 5并使用它编写一些测试 &#xff0c;下面让我们看一下。 在本文中&#xff0c;我们将讨论JUnit 5架构以及采用这种方式的原因。 总览 这篇文章是有关JUnit 5的系列文章的一部分&#xff1a; 建立 基本 建筑 条件 注射 … JUni…

pytorch load state dict_PyTorch 学习笔记(五):Finetune和各层定制学习率

本文截取自《PyTorch 模型训练实用教程》&#xff0c;获取全文pdf请点击&#xff1a;https://github.com/tensor-yu/PyTorch_Tutorial [toc]我们知道一个良好的权值初始化&#xff0c;可以使收敛速度加快&#xff0c;甚至可以获得更好的精度。而在实际应用中&#xff0c;我们通…

华为配备鸿蒙系统的手机,华为P50/新平板双双来袭!全球首发鸿蒙系统:配置都非常强悍...

【12月12日讯】相信大家都知道&#xff0c;华为方面已经正式官宣&#xff0c;将会在12月16日正式推出鸿蒙系统首个手机Bate版本&#xff0c;但也有很多网友们担忧&#xff0c;华为手机在脱离了Android系统以后&#xff0c;鸿蒙OS系统是否真的可以击败Android系统&#xff0c;第…

【WebRTC---入门篇】(十八)WebRTC非音视频数据传输

WebRTC传输非音视频重要API createDataChannel options ordered 在传输非音视频的时候是否是按序到达的。 maxPacketLifeTime/maxRetransmits 最大包存活时间;最大传输次数。两者二选一 negotiated ID 唯一标识 DataChannel事件