Python基础之元组
元组初识
元组的认识
首先,我们来认识一下元组:
# 定义一个元组
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基础之元组的更多相关文章
- python基础深入(元组、字符串、列表、字典)
python基础深入(元组.字符串.列表.字典) 一.列表 1.追加 >>>list = [1,2,3,4] #用于在列表末尾添加新的对象,只能单个添加,该方法无返回值,但是会修改原 ...
- python基础数据类型--元组(tuple)
python基础数据类型--元组(tuple) 一.元组的定义和特性 定义:与列表相似,只不过就是将[ ] 改成 ( ) 特性:1.可以存放多个值 2.不可变 3.按照从左到右的顺序定义元组元素,下标 ...
- python3速查参考- python基础 4 -> 元组 + 字典 + 字符串 的学习
元组 元组:特点就是内容不可变,算只读的列表,可以被查询,不能被修改 a = 2, print(a) print(type(a)) b = ('a','b','c') print(b[1]) 运行结果 ...
- python基础之元组、文件操作、编码、函数、变量
1.集合set 集合是无序的,不重复的,主要作用: 去重,把一个列表变成集合,就可以自动去重 关系测试,测试两组数据的交集,差集,并集等关系 操作例子如下: list_1 = [1,4,5,7,3,6 ...
- 2.python基础深入(元组、字符串、列表、字典)
一,对象与类 对象: python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,玩的手机就是对象. 我们通过描述属性(特征)和行为来描述一个对象的. 在python中,一个对象的特 ...
- python基础之元组(Tuple)、字典(Dictionary)详解
元组定义 元组是另一个数据类型,类似于List(列表). 元组用”()”标识.内部元素用逗号隔开.但是元素不能二次赋值,相当于只读列表. 举例: tuple = ( ‘abcd’, 786 , 2.2 ...
- python基础之元组,集合
一.元组 为何要有元组,存放多个值,元组不可变,更多的是用来做查询 t=(,[,],,)) #t=tuple((,[,],,))) print(type(t)) 元组可以作为字典的key d={(,, ...
- Python基础之元组和字典
一.元组: 1.定义: 内存图: 2.基本操作 3.元组作用: 4.元组基础知识代码 # . 创建空元组 t01 = () t02 = tuple() # . 创建具有默认值的元组 t01 = (,, ...
- python基础-列表元组字典
1.列表和元组 列表可以对数据实现最方便的存储.修改等操作 names=["Alex","tenglan","Eric","Rai ...
随机推荐
- android:layout_weight属性详解
weight:重量.权重. 当我们给一个view设置了android:layout_weight属性,意味着赋予它话语权,常规思维就是谁的weight大,谁说了算(空间占比大). 下面我们来看下具体的 ...
- Postgresql数据库部署之:Postgresql本机启动和Postgresql注册成windows 服务
1.初始化并创建数据库(一次即可) initdb \data --locale=chs -U postgres -W You can now start the database server u ...
- 「工具」Aquarelo - 来自意大利的色阶管理工具
Aquarelo是一款小而美的色阶管理工具,由意大利团队开发,包含三个核心功能,可用于色彩管理.色彩搭配等场景. ## 相关参数 * 操作系统:macOS* 工具官网:[Aquarelo for Ma ...
- windows根据端口号杀进程
有时候eclipse会被卡死, 结束进程后重新启动项目会出现端口已经被占用 这时候需要杀掉进程 1, cmd打开dos窗口 2, netstat -ano | findstr "端口号&qu ...
- ERROR 1129 (HY000): mysqladmin flush-hosts
mysql报错:ERROR 1129 (HY000): Host * is blocked because of many connection errors; unblock with 'mysql ...
- 快速构建SPA框架SalutJS--项目工程目录 一
起因 刚进公司那会儿,接的是一个微信APP应用,SPA是前人搭起来的,用到的技术主要是backbone和zepto.后来那人走了,就卤煮一个人把项目接了下来.项目越是到后面,越发觉了诸多弊端,不停的增 ...
- Netty2:粘包/拆包问题与使用LineBasedFrameDecoder的解决方案
什么是粘包.拆包 粘包.拆包是Socket编程中最常遇见的一个问题,本文来研究一下Netty是如何解决粘包.拆包的,首先我们从什么是粘包.拆包开始说起: TCP是个"流"协议,所谓 ...
- 以Windows服务方式运行ASP.NET Core程序
我们对ASP.NET Core的使用已经进行了相当一段时间了,大多数时候,我们的Web程序都是发布到Linux主机上的,当然了,偶尔也有需求要发布到Windows主机上,这样问题就来了,难道直接以控制 ...
- 视频直播 object 标签属性详解
最近在做视频直播这一块的,html5的video不能实现此功能,在网上查找了资料,觉得很有用. 一.介绍: 我们要在网页中正常显示flash内容,那么页面中必须要有指定flash路径的标签.也就是OB ...
- GC参考手册 —— GC 调优(工具篇)
JVM 在程序执行的过程中, 提供了GC行为的原生数据.那么, 我们就可以利用这些原生数据来生成各种报告.原生数据(raw data) 包括: 各个内存池的当前使用情况, 各个内存池的总容量, 每次G ...