python基础——数据结构之元组
Tuple使用:与列表类似的存储空间,只是内容不允许修改
创建
tuplename=(element1,element2,……,elementn)
其中,tuplename表示变量名,element表示元组的元素
(与列表注意区分开,列表为方括号[],元组则为圆括号())
lst=[1,2,3,4,5]
print(lst)tup1=(1,2,3,4,5)
print(tup1)>>>
[1, 2, 3, 4, 5]
(1, 2, 3, 4, 5)
注意的一点是:当创建的元组中只有一个元素时,该元素后面必须要加一个逗号,
否则python解释器会识别为字符串
tup1=(1)
print(tup1)tup2=(1,)
print(tup2)>>>
1
(1,)
其他创建方式
使用tuple()函数创建元组
tup1=tuple(data) 其中data表述可以转换为元组的数据(包括字符串、元组、range等)
lst=[0,1,2,3,4,5] #将列表转换为元组
tup1=tuple(lst)
print(tup1)
>>>
(0, 1, 2, 3, 4, 5)tup1=tuple(range(7)) #将range范围转换为元组
print(tup1)
>>>
(0, 1, 2, 3, 4, 5, 6)t=('a','b','c') #将元组用函数转换
tup1=tuple(t)
print(tup1)
>>>
('a', 'b', 'c')
Tuple可以看作是一种“不变”的list,访问也是通过下标访问,使用[]进行访问
但是不能重新赋值,也没有pop、insert、append方法
tup1=(3.14,'jack','rose',2,5)
print(tup1) #输出元组的所有内容
>>>
(3.14, 'jack', 'rose', 2, 5)tup1=(3.14,'jack','rose',2,5)
print(tup1[0]) #使用下标进行访问,只是输出不允许修改
>>>
3.14 tup1=(3.14,'jack','rose',2,5)
str=tup1[1]
print(str) #只是输出,不允许修改
>>>
jacktup1=(3.14,'jack','rose',2,5)
print(tup1)tup1[1]="mark" #修改失败,元组不允许重新赋值替换
print(tup1)
>>>
(3.14, 'jack', 'rose', 2, 5)
Traceback (most recent call last):File "D:\pythonProject\demo3.py", line 27, in <module>tup1[1]="mark"
TypeError: 'tuple' object does not support item assignment #不允许修改的提示
增加(拼接)操作
可以创建空元素的tuple:t=()
或者单元素tuple(加一个逗号):t=(3.14,)
t0=("A","B")
t1=(1,2,3)
t2=t0+t1 #依靠拼接完成增加操作
print(t2)
t3=("x",)
t4=t2+t3
print(t4)
>>>
('A', 'B', 1, 2, 3)
('A', 'B', 1, 2, 3, 'x')
删除对象操作(没有直接删除方法)
t0=("A","B")
print(t0)del t0 #对象删除,没有直接删除元素操作
print(t0)
>>>
('A', 'B')
Traceback (most recent call last):File "D:\pythonProject\demo3.py", line 37, in <module>print(t0)
NameError: name 't0' is not defined
间接修改操作(没有直接修改方法)
t=(1,2,3,'mark','rose',[3.14,12,13,"a"])
print(t)
t[0]=11 #修改失败,不可直接进行修改
print(t)
>>>
(1, 2, 3, 'mark', 'rose', [3.14, 12, 13, 'a'])
Traceback (most recent call last):File "D:\pythonProject\demo3.py", line 47, in <module>t[0]=11
TypeError: 'tuple' object does not support item assignment
#元组部分内容转为列表,(间接修改)在列表内进行修改,最后直接输出元组
t=(1,2,3,'mark','rose',[3.14,12,13,"a"])
print(t)
L=t[5]
L[0]=11
L[1]=22
print(t)
>>>
(1, 2, 3, 'mark', 'rose', [3.14, 12, 13, 'a'])
(1, 2, 3, 'mark', 'rose', [11, 22, 13, 'a'])
查询操作
1.数组下标
t=(1,2,3,'mark','rose',[3.14,12,13,"a"])
print(t[2])
>>>
3
2.切片操作(左闭右开区间)
t=(1,2,3,'mark','rose',[3.14,12,13,"a"])
print(t[2:5])
>>>
(3, 'mark', 'rose')
3.遍历操作
t=(1,2,3,'mark','rose',[3.14,12,13,"a"])
for x in t:print(x)
>>>
1
2
3
mark
rose
[3.14, 12, 13, 'a']
重复内容操作
t=(1,2,3,'mark','rose',[3.14,12,13,"a"])
print(t*3)
>>>
(1, 2, 3, 'mark', 'rose', [3.14, 12, 13, 'a'], 1, 2, 3, 'mark', 'rose', [3.14, 12, 13, 'a'], 1, 2, 3, 'mark', 'rose', [3.14, 12, 13, 'a'])
in成员操作符判断是否在元组中
t=(1,2,3,'mark','rose',[3.14,12,13,"a"])
print(1 in t)
print(11 not in t)
>>>
True
True
计数和索引值
t=(1,2,3,'mark','rose',1,[3.14,12,13,"a"])
print(t.count(1)) #计算t中符合指定元素1的数量
print(t.index('mark')) #打印第一个符合元素项的下标值
>>>
2
3
python自带垃圾回收功能,会自动销毁不用的元组,所以一般不需要通过del进行手动删除
特性
python中往往会将有逗号连接的量视为元组,即使外边没有圆括号
t=1,2,3
print(t)
>>>
(1, 2, 3)
这在某些场合可以用来快速交换数据
x,y=y=x
x,y,z=z,y,x
x=1
y=2
print(x,y)
x,y=y,x
print(x,y)
>>>
1 2
2 1x=1
y=2
z=3
print(x,y,z)
x,y,z=z,y,x
print(x,y,z)
>>>
1 2 3
3 2 1
在开发中,更多的应用场景是:
函数的参数和返回值,一个函数可以接受任意多个参数,或者一次返回多个数据
格式字符串,格式化字符串后面的()本质上就是一个元组
格式化字符串后的()本质上就是元组
#没有括号的话会报错
print("%s 年龄是 %d 身高是 %.2f" % ("小明",18,1.75))
>>>
小明 年龄是 18 身高是 1.75
定义一个元组,验证一下,输出的结果与上面一致
info_tuple_02=("小明",18,1.75)
print("%s 年龄是 %d 身高是 %.2f" % info_tuple_02)
>>>
小明 年龄是 18 身高是 1.75
使用格式字符串,拼接生成一个新的字符串
info_tuple_02=("小明",18,1.75)
str1="%s 年龄是 %d 身高是 %.2f" % info_tuple_02
print(str1)
>>>
小明 年龄是 18 身高是 1.75
练习题
tup=(“nihao”,“wohao”,“dajiahao”)
1.计算元组长度并输出
tup=("nihao","wohao","dajiahao")
print("len =",len(tup),tup)
>>>
len = 3 ('nihao', 'wohao', 'dajiahao')
2.获取元组第二个元素并输出
tup=("nihao","wohao","dajiahao")
print(tup[1])
>>>
wohao
3.获取元素第2-3个元素并输出
tup=("nihao","wohao","dajiahao")
print(tup[1:3])
>>>
('wohao', 'dajiahao')
4.使用for循环遍历输出元组
tup=("nihao","wohao","dajiahao")
for x in tup:print(x)
>>>
nihao
wohao
dajiahao
5.使用for、len、range输出元组的索引
tup=("nihao","wohao","dajiahao")
print("len =",len(tup))
for x in range(0,len(tup)):print(x,tup[x])
>>>
0 nihao
1 wohao
2 dajiahao
6.将元组中元素第一个与最后一个交换后整体输出
tup=("nihao","wohao","dajiahao")
x=tup[0]
y=tup[1]
z=tup[2]
x,z=z,x
print(x,y,z)
>>>
dajiahao wohao nihao
python基础——数据结构之元组相关推荐
- Python基础 - 数据结构
Python基础 - 数据结构 列表 简单示例 >>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', ...
- Python基础类型之元组
Python基础类型之元组 一.元组的介绍 二.元组的使用 三.元组不可变特性 1.不可修改 2.元组的第一层不可变 四.单独元素的使用 一.元组的介绍 1.Python的元组与列表类似,不同之处在于 ...
- Python基础数据结构之大循环(for list,set,dict,tuple)
本章是Python基础数据结构的第六篇,由于之前没有接触过太多的Python版本的数据结构,所以在学习的过程中集百家之长和自己的见解,加以实践,学习Python. Python中用到tuple的方法, ...
- python基础数据结构
python基础复习 chapter1 变量和数据类型 变量 变量命名:只能包含字母,数字,下划线,开头不能使用下划线. 注解:不要用python的关键字和函数命名变量名 数据类型 1. 字符串 在p ...
- Python基础入门006_元组
目录 1. 创建和访问一个元组 2.更新和删除一个元组 3. 元组相关的操作符 4.内置方法 5. 解压元组 1. 创建和访问一个元组 Python 的元组与列表类似,不同之处在于tuple被创建后就 ...
- Python 基础数据结构
Python 是一种跨平台的计算机程序设计语言,是一种面向对象的动态类型语言,笔记内容包括编译安装python,python列表,字典,元组,文件操作等命令的基本使用技巧. ◆编译安装 Python◆ ...
- Python基础|理解元组存在的意义
Python中有一个基础的数据结构,叫做元组(tuple),但是一般挺少有人会到到它的,因为基本上在开发过程中,列表(list)已经能够满足我们的基本需求了. 即使是这样,你也千万不要就此认为元组是多 ...
- 二、python基础(列表、元组、字符串、集合、字典、文件操作,函数基本语法及特性)...
本节内容 列表.元组操作 字符串.列表.字典.集合操作 文件操作 函数基本语法及特性 一.列表.元组操作 列表是我们最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作: 列表操作:切 ...
- Python基础教程:元组详细使用
元组 元组和列表类似,但属于不可变序列,元组一旦创建,用任何方法都不可修改其元素. 元组的定义方式和列表相同,但定义时所有元素是放在一对圆括号"()"中,而不是方括号中. 1.元组 ...
最新文章
- Print all attributes and values in a Javascript Object
- java implements interface_Java 接口 interface implements
- Caddy-基于go的微型serve用来做反向代理和Gateway
- Python学习:字典
- HTML转PDF(C#---itextsharp)(转自别人的文章)
- LeetCode算法题-Repeated String Match(Java实现)
- bind 0.0.0.0的作用是什么呢?
- c++代码整洁之道pdf_别再问如何用python提取PDF内容了
- 武大金融工程和计算机专业,求解!武大的金融工程可以排第几
- hive表存储格式的转化
- python 自动化测试面试题及答案_自动化测试面试题及答案
- 被亚马逊下架含18650锂电池产品
- 14-CompletableFuture异步编排
- Android Notification使用
- ldc java_java-如何在Jasmin中使用“ ldc_w”避免“常量...
- 【GA】Genetic Algortihm(A)
- 重力感应失灵/更新win10后不能自动旋转屏幕
- 如何设置微信公众号粉丝关注后自动推送小程序
- 华数机器人旋转编程_用户手册-华数机器人.PDF
- vSphere6.7环境搭建