元组初识

元组的认识

首先,我们来认识一下元组:

# 定义一个元组
uesr_tuple = ("zhangsan", "lisi", "wangwu")
# 定义一个空元组
empty_tuple = ()

元组的作用和定义

  • 通过前面的学习,我们知道,列表通常用来存储相同类型的数据;而元组在实际开发中,通常用来存储不同类型的数据
  • 元组(Tuple)与列表相似,不同之处在于元组的元素不能修改
  • 元组表示多个元素组成的序列;用于存储一串信息,不同数据之间用逗号隔开;
  • 元组的索引从0开始;

元组的定义语法

变量名 = (数据1, 数据2, 数据3,...)
eg:
uesr_tuple = ("zhangsan", "lisi", "wangwu")

定义元组和取值

# 定义一个常规元组
user_tuple = ("xiaoming", 18, 175)
# 注意,取值时,索引不能超过元组的元素数量范围,否则报错
user_tuple[0]
'xiaoming'
user_tuple[2]
175 # 定义空元组;
empty_tuple = ()
type(empty_tuple) # tuple # 定义一个单元素元组;
# 如果元组中只有一个数据,要在那一个数据后面加逗号,否则该元组变量会被python解释器认为是括号内数据的数据类型;
single_tuple = (5)
type(single_tuple) # int single_tuple = (5,)
type(single_tuple) # tuple

元组的操作函数

查看元组操作函数

在ipython交互式下,新建一个元组empty_tuple;empty_tuple. 按一下tab键,即可查看元组函数

In [1]: t_tuple = ()   

In [2]: t_tuple.
t_tuple.count t_tuple.index In [2]: t_tuple.

由此可见,元组自带的操作函数只有两个:

t_tuple.count  t_tuple.index

取值和取索引(index)

user_info = ("xiaoming", 20, 181, "xiaoming")

print(user_info[1])  # 10
# 已经知道元组内容,希望获取该内容在元组中的位置
# 如果有两个相同的数据,取索引会取出现的第一个
print(user_info.index("xiaoming")) # 0

统计计数(count,len)

user_info = ("xiaoming", 20, 181, "xiaoming")
# 使用元组自带的函数统计元素出现个数
print(user_info.count("xiaoming")) # 2 # 使用关键字 统计元组中的元素个数
print(len(user_info)) # 4

元组其他扩展

元组 循环遍历

元组遍历就是 从头到尾 依次从元组中取数据;

每次循环都将 从元组中顺序的读取出来的数据放在临时变量中,然后执行相同的操作。

使用for进行迭代遍历。

user_tuple = ["zhangsan", 20, 181]
for i in user_tuple:
# 因为通常元组的元素数据类型不同,所以一般很少遍历元组做操作,
# 除非确定元组中每一个元素的数据类型
print(i)

在Python中,可以使用for循环遍历所有非数字型类型的变量:列表,元组,字典以及字符串

元组应用场景

  • 函数的参数和返回值;一个函数可以接收任意多个参数,或者一次返回多个数据。
  • 格式字符串,格式化字符串后面的()本质上就是一个元组。
  • 保护数据安全,列表不能被修改。

元组和格式化字符串

格式化后面的括号和内容,本质上就是元组;我们可以先定义一个元组,然后在格式化后面%元组,一样能输出;

同时,我们甚至可以将print括号里面的函数拿出来,定义成一个变量,再用print输出。

# 四者的输出结果都一样
# zhangsan 的年龄是 20, 身高是 181
name = "zhangsan"
age = 20
height = 181
print("%s 的年龄是 %d, 身高是 %d" % (name, age, height)) userinfo = ("zhangsan", 20, 181) print("%s 的年龄是 %d, 身高是 %d" % (userinfo[0], userinfo[1], userinfo[2])) # 也可以这样玩
print("%s 的年龄是 %d, 身高是 %d" % userinfo) # 还可以这样玩
info = "%s 的年龄是 %d, 身高是 %d" % userinfo
print(info)

元组和列表之间的转换

元组转列表:list()

列表转元组:tuple()

num_list = [2,1,4,3]
type(num_list) # list num_tuple = tuple(num_list)
type(num_tuple) # tuple num_list2 = list(num_tuple)
type(num_list2) # list

Python基础之元组的更多相关文章

  1. python基础深入(元组、字符串、列表、字典)

    python基础深入(元组.字符串.列表.字典) 一.列表 1.追加 >>>list = [1,2,3,4] #用于在列表末尾添加新的对象,只能单个添加,该方法无返回值,但是会修改原 ...

  2. python基础数据类型--元组(tuple)

    python基础数据类型--元组(tuple) 一.元组的定义和特性 定义:与列表相似,只不过就是将[ ] 改成 ( ) 特性:1.可以存放多个值 2.不可变 3.按照从左到右的顺序定义元组元素,下标 ...

  3. python3速查参考- python基础 4 -> 元组 + 字典 + 字符串 的学习

    元组 元组:特点就是内容不可变,算只读的列表,可以被查询,不能被修改 a = 2, print(a) print(type(a)) b = ('a','b','c') print(b[1]) 运行结果 ...

  4. python基础之元组、文件操作、编码、函数、变量

    1.集合set 集合是无序的,不重复的,主要作用: 去重,把一个列表变成集合,就可以自动去重 关系测试,测试两组数据的交集,差集,并集等关系 操作例子如下: list_1 = [1,4,5,7,3,6 ...

  5. 2.python基础深入(元组、字符串、列表、字典)

    一,对象与类 对象: python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,玩的手机就是对象. 我们通过描述属性(特征)和行为来描述一个对象的. 在python中,一个对象的特 ...

  6. python基础之元组(Tuple)、字典(Dictionary)详解

    元组定义 元组是另一个数据类型,类似于List(列表). 元组用”()”标识.内部元素用逗号隔开.但是元素不能二次赋值,相当于只读列表. 举例: tuple = ( ‘abcd’, 786 , 2.2 ...

  7. python基础之元组,集合

    一.元组 为何要有元组,存放多个值,元组不可变,更多的是用来做查询 t=(,[,],,)) #t=tuple((,[,],,))) print(type(t)) 元组可以作为字典的key d={(,, ...

  8. Python基础之元组和字典

    一.元组: 1.定义: 内存图: 2.基本操作 3.元组作用: 4.元组基础知识代码 # . 创建空元组 t01 = () t02 = tuple() # . 创建具有默认值的元组 t01 = (,, ...

  9. python基础-列表元组字典

    1.列表和元组 列表可以对数据实现最方便的存储.修改等操作 names=["Alex","tenglan","Eric","Rai ...

随机推荐

  1. JAVAFX之tableview界面实时刷新导致的内存溢出(自己挖的坑,爬着也要出来啊0.0)

    这几天遇到了一个问题,不幸开发的一个cs架构的工具,客户端开启后,内存一直在缓慢增长最终导致进程卡死,花了4天时间,终于爬出来了... 客户端通过timer定时器每30秒查询一次数据库以及一些业务逻辑 ...

  2. CYQ.Data 对于分布式缓存Redis、MemCache高可用的改进及性能测试

    背景: 随着.NET Core 在 Linux 下的热动,相信动不动就要分布式或集群的应用的需求,会慢慢火起来. 所以这段时间一直在研究和思考分布式集群的问题,同时也在思考把几个框架的思维相对提升到这 ...

  3. Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  4. vs 2017

    Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Professional: KBJFW-NXHK6-W4WJM-CRMQB-G3CDH

  5. Java基础——多线程(持续更新中)

    如何建立一个执行路径呢? 通过查询API文档 java.lang.Thread类 该类的描述中有创建线程的两种方式 1.继承Thread类 (1).将类声明为 Thread 的子类 (2).该子类应重 ...

  6. Dubbo简介

    1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需 ...

  7. 【activity任务栈】浅析

    背景知识 Activity四种启动模式 标准模式 standard 栈顶复用模式 singleTop 栈内复用模式 singleTask 单例模式 singleInstance 任务栈 Activit ...

  8. GetTypes Unable to load one or more of the requested types

    重新生成项目,更新反射类的dll文件

  9. 【最短路径Floyd算法详解推导过程】看完这篇,你还能不懂Floyd算法?还不会?

    简介 Floyd-Warshall算法(Floyd-Warshall algorithm),是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似.该算法名称以 ...

  10. [翻译]Mock 在 Python 中的使用介绍

    目录 Mock 在 Python 中的使用介绍 原文链接与说明 恐惧系统调用 一个简单的删除函数 使用 Mock 重构 潜在陷阱 向 'rm' 中加入验证 将文件删除作为服务 方法 1:模拟实例的方法 ...