Python Collections 模块 - 2 Tuple功能详解_to_2tuple-程序员宅基地

技术标签: Python高级编程  

1. 迭代

# -*- coding: utf-8 -*-
__autor__ = "TOM"

name_list = ["Tom1","Tom2"]   # 常用for循环遍历list
for name in name_list:
    print(name)

name_tuple = ("Tom3","Tom4")   # tuple也可以遍历;
for name in name_tuple:        # for循环会拿到tuple/list的迭代器,所有iterable对象都可以迭代
    print(name)               # 内部实现了__iter__/__getitem__魔法函数,实现迭代。

2. 拆包

name_tuple = ("Tom3","Tom4")
name_tuple = ("Tom1","Tom2")   # 这样操作合理,python变量仅仅是一个符号,多有动态语言都支持该操作
user_tuple = ("Tom1",29,175)
name,age,height = user_tuple    # 把元祖里面拆包为三个变量,将三个位置信息,分别赋值给三个变量,此即为元祖离目的拆包的用法
                                # 隐含的位置对应关系。
# 如果没有拆包,则用以下写法,位置信息不明显
# name = user_tuple[0]
# age = user_tuple[1]
# height = user_tuple[2]
name, *other = user_tuple      # 只提取第一个位置,其它位置信息不care,统一放在一个数组中。
print(name,age,height)
print(name,other)
Tom1 29 175
Tom1 [29, 175]

3. tuple的相对不可变性

name_tuple = ("Tom3","Tom4")
user_tuple = ("Tom1",29,175)
name_tuple = ("Tom1",[29,175]) # 一般,不建议把可变数据对象放到tuple中
name_tuple[1].append(22)       # 此处,修改数组[29,175]时,数组的id并没有改变,因此可以对该数组修改,实现了对tuple的修改
print(name_tuple)
('Tom1', [29, 175, 22])

4. tuple相对于list好的地方

user_tuple = ("Tom1",29,175)
user_list = ["Tom1",29,175]

# list不可用作为dict的key,tuple可以
user_info_dict = {}
user_info_dict[user_tuple] = "Jack-1"
print(user_info_dict )    # {('Tom1', 29, 175): 'Jack-1'}

user_info_dict[user_list] = "Jack-1"   # 此处执行会报错,    user_info_dict[user_list] = "Jack-1" 
                                        # TypeError: unhashable type: 'list'
print(user_info_dict )   
C:\Users\Amber\PycharmProjects\CollectionsOverview\venv\Scripts\python.exe C:/Users/Amber/PycharmProjects/CollectionsOverview/Chapter2/tuple_test4.py
Traceback (most recent call last):
  File "C:/Users/Amber/PycharmProjects/CollectionsOverview/Chapter2/tuple_test4.py", line 9, in <module>
    user_info_dict[user_list] = "Jack-1"
TypeError: unhashable type: 'list'
{('Tom1', 29, 175): 'Jack-1'}

Process finished with exit code 1

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/f2157120/article/details/104920326

智能推荐

华为asph是什么型号_小米11上的ASPH镜头到底是个啥?来看看这个镜头到底怎么样?...-程序员宅基地

文章浏览阅读4.2k次。小米11快要发布了,越来越多的消息曝光,4500mAh的电池,120赫兹+2K分辨率+1500尼特亮度的屏幕,康宁第七代大猩猩玻璃,双对称扬声器,HMX主摄+光学防抖,代工厂依旧是廊坊富士康,而且这部手机可能是小米史上最贵的数字旗舰。今天我们来讲讲大家都没有注意到的一个配置,小米11上的ASPH镜头。ASPH简单来讲就是非球面镜头,这个非曲面镜头与前一段华为的自由曲面镜头还不一样(主页有文章详细介..._小米13pro标识asph是什么意思

小学美术计算机教案,【实用】小学美术教案6篇-程序员宅基地

文章浏览阅读492次。【实用】小学美术教案6篇作为一名教师,就有可能用到教案,教案有助于顺利而有效地开展教学活动。来参考自己需要的教案吧!下面是小编帮大家整理的小学美术教案6篇,欢迎大家分享。小学美术教案 篇1第1课难忘夏天教学目标通过感受和体验,引导学生用美术语言表达夏天,挖掘创造潜能,抒发自己的情感。教学重难点1.重点:引导学生感受夏天,抓住自己难忘的细节,用美术材料大胆地表现自己对夏天的理解。2.难点:如何巧妙地..._小学美术教学设计博客

mybatis入门-04-配置文件详解_mybatis yml配置文件详解-程序员宅基地

文章浏览阅读120次。配置文件详解_mybatis yml配置文件详解

配置Ipv4地址,脚本怎么写_脚本地址怎么填-程序员宅基地

文章浏览阅读3.8k次。在公司项目开发的时候需要将项目部署在不同的服务器上,部署时你需要进行ip的切换,接下来我来介绍俩种配置方法。第一种首先点击桌面右下角的电脑图标,用鼠标右击打开Internet设置。进入到如下界面,点击以太网,点击右边的更改适配器配置。然后进入到如下界面,双击如下图标。然后进入到如下界面,双击属性。进入到如下界面,双击如下图标。进入到如下界面,黄色部分为ip和网关填上去就好,..._脚本地址怎么填

JVM调优专题-内存溢出及解决方案_jvm调优 堆内存溢出-程序员宅基地

文章浏览阅读1.6k次。吃撑过吗?吃多了还想吃咋办?当然JVM也有吃撑了的时候,甚至撑到程序宕机卡死,后果很严重。本节我们一起探讨如何判断JVM内存溢出、以及其解决方案。_jvm调优 堆内存溢出

「生存即赚」链接现实与游戏,打造3T平台生态

3T游戏的推出,旨在聚合资源,开拓新的市场领域,为整个行业创造更多的增长点和价值空间。抵抗者算力救助:为了缓解玩家在游戏中可能遭受的损失,当玩家所在的房间被攻破时,虽然他们投入的USDT或3TC会损失,但作为补偿,玩家将获得相应比例的3TC算力救助,这种机制既体现了游戏的人文关怀,又为玩家提供了继续参与游戏的动力。3T游戏平台解决的不仅仅是玩家游戏体验的问题,它还将区块链技术与DEFI和跨链相结合,链接全球的各个环节,让用户可以在不同链上进行游戏交互,享受更加多样化和丰富的游戏体验,打造3T游戏生态。

随便推点

【CVPR2020】人脸识别:Face X-ray/SCN_人脸伪造检测 csdn-程序员宅基地

文章浏览阅读2.9k次,点赞2次,收藏16次。反伪造:Face X-ray文章来源:https://arxiv.org/pdf/1912.13458.pdfIntuition大部分的人脸伪造算法都具有相同的步骤:将一个修改后的人脸图像放在另一个背景图像中,如下图所示而这两张图像由于采集或生成方式的不同,某些性质可能有差异,如果成功检测出这些差异,不仅可以判断人脸是否是伪造的,还可以确定图像融合的边界。下图展示了伪造人脸和背景两个指标的不同。fomula人脸融合的公式如下其中IM是融合后的图像,IF是前景图像,IB是背景图像,M_人脸伪造检测 csdn

实验室管理利器——LIMS软件厂商巡礼_lims实验室管理pda-程序员宅基地

文章浏览阅读680次。有人曾总结,LIMS是实验室管理的隐形管家、得力助手,就好比贾维斯对于钢铁侠一样的存在。在实验室中使用LIMS,是实验室发展的必然趋势。尽管与欧美等发达国家相比,我国LIMS起步晚,在产品成熟度、技术架构的先进性、稳定性,以及应用普及率等方面还有一定的差距,但随着中国医疗、生物技术、制药和化工等行业的增长,以及国内法规和标准对实验室质量控制要求的不断提高,必将推动我国LIMS软件市场进一步扩展。与此同时,LIMS软件厂商也将迎来新的发展与提升。_lims实验室管理pda

前端canvas项目实战——在线图文编辑器(九):逻辑画布

上一篇博文中,我们实现了一组通用的功能按钮:复制、删除、锁定和层叠顺序。这篇博文是《前端canvas项目实战——在线图文编辑器》付费专栏系列博文的第九篇——逻辑画布,主要的内容有:1. 调整页面布局,将画布区域扩展至整个屏幕的剩余空间中。2. 区分「物理画布」和「逻辑画布」,为实现「缩放」、「辅助线」等功能打基础。

【团体程序设计天梯赛】往年关键真题 L2-026 小字辈 递归 & L2-027 名人堂与代金券 排序 详细分析&完整AC代码

L2-026 小字辈 递归本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。L2-027 名人堂与代金券 排序对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利:总评分在 [G, 100] 区间内者,可以得到 50 元 PAT 代金券;在 [60, G) 区间内者,可以得到 20 元PAT代金券。全国考点通用,一年有效。同时任课老师还会把总评成绩前 K 名的学生列入

C++里的new

请你找出其中不含有重复字符的。请注意,你的答案必须是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。,所以其长度为 3。,所以其长度为 1。,所以其长度为 3。

怎样在 Ubuntu 中修改默认程序_ubuntu20.04开机logo界面修改默认unity-程序员宅基地

文章浏览阅读814次。作为一个新手,你需要知道如何在 Ubuntu 中修改任何默认程序,这也是我今天在这篇指南中所要讲的。_ubuntu20.04开机logo界面修改默认unity