Python中tuple的功能介绍
Tuple的功能介绍
1. 元祖的两种方法
1. 元祖的内置方法
两个元祖的相加
格式:x.__add__(y)等同于x+y
例如:tu1 = (1,2,3,)
print(tu1.__add__((2,3,4,)))
>>> (1, 2, 3, 2, 3, 4)
返回值:tuple
#只能是两个元祖相加,生成一个新元祖
判断是否是包含关系
格式:x.__contains__(y)等同于y in x
例如:tu1 = (1,2,3,)
print(tu1.__contains__(3))
>>> True
返回值:bool
#上述的y可以是任意对象object
判断两个元祖是否相等
格式:x.__eq__(y)等同于x==y
例如:tu1 = (1,2,3,)
print(tu1.__eq__((2,3,)))
>>> False
返回值:bool
#上述的y只能是元祖
大于等于
格式:x.__ge__(y)等同于x>=y
例如:tu1 = (1,2,3,)
print(tu1.__ge__((2,3,)))
>>> False
返回值:bool
#上述的y只能是元祖
注:两个元祖判断大小主要依据为元祖的第一个元素的大小。
访问属性
格式:x.__getattribute__(self,name)
返回值:tuple
取出指定索引的值
格式:x.__getitem__(index)等同于tuple[index]
例如:tu1 = (1,2,3,)
print(tu1.__getitem___(2))
>>> 3
返回值:object
元祖元素化
格式:x.__getnewargs__()
例如:tu1 = (1,2,3,)
print(tu1.__getnewargs__())
>>> ((1,2,3,),)
返回值:tuple
#把原元祖作为一个新元祖的一个元素
大于
格式:x.__gt__(y)等同于x>y
例如:tu1 = (1,2,3,)
print(tu1.__gt__((2,3,)))
>>> False
返回值:bool
#上述的y只能是元祖
注:两个元祖判断大小主要依据为元祖的第一个元素的大小。
哈希化
格式:x.__hash__()等同于hash(x)
例如:tu1 = (1,2,3,)
print(tu1.__hash__())
>>> 2528502973977326415
返回值:int
迭代器
格式:x.__iter__()等同于iter(x)
例如:tu1 = (1,2,3,)
die = tu1.__iter__()
print(die.__next__())
>>> 1
返回值:迭代器
小于等于
格式:x.__le__(y)等同于x<=y
例如:tu1 = (1,2,3,)
print(tu1.__le__((2,3,)))
>>> True
返回值:bool
#上述的y只能是元祖
注:两个元祖判断大小主要依据为元祖的第一个元素的大小。
长度
格式:x.__len__()等同于len(x)
例如:tu1 = (1,2,3,)
print(tu1.__len__())
>>> 3
返回值:int
小于
格式:x.__lt__(y)等同于x<y
例如:tu1 = (1,2,3,)
print(tu1.__lt__((2,3,)))
>>> True
返回值:bool
#上述的y只能是元祖
注:两个元祖判断大小主要依据为元祖的第一个元素的大小。
相乘(复制)
格式:x.__mul__(num)等同于x*num
例如:tu1 = (1,2,3,)
print(tu1.__mul__(2))
>>> (1,2,3,1,2,3)
返回值:tuple
不等于
格式:x.__ne__(y)等同于x!=y
例如:tu1 = (1,2,3,)
print(tu1.__ne__((2,3,)))
>>> True
返回值:bool
#上述的y只能是元祖
创建新元祖
格式:x.__new__(tuple)
例如:tu1 = (1,2,3,)
print(tu1.__new__(tuple))
>>> ()
返回值:tuple
内置转换方法
格式:x.__repr__(self)
返回值:tuple
右→左 相乘(复制)
格式:x.__rmul__(num)等同于num*x
例如:tu1 = (1,2,3,)
print(tu1.__rmul__(2))
>>> (1,2,3,1,2,3)
返回值:tuple
元祖在内存中的大小,转换为字节进行计算
格式:x.__sizeof__()
例如:tu1 = (2,3,)
tu2 = (4,5,6,)
print(tu1.__sizeof__())
>>> 40
print(tu2.__sizeof__())
>>> 48
返回值:int
#元祖的长度不同,导致元祖在内存中大小也不一样。
2. 常用方法
计数
格式:x.count(value)
例如:tu1 = (1,2,3,1,2,3,)
print(tu1.count(2))
>>> 2
返回值:int
索引
格式:x.index(value,start,end)
例如:tu1 = (1,2,3,1,2,3,)
print(tu1.index(2,1,4))
>>> 1
返回值:int
#不指定范围时,默认全元祖搜索
2. 元祖操作
1. 元祖的基础操作
加法
符号: +
格式:tuple1 + tuple2
例如:tu1 = (1,2,3,)
tu2 = ('a','b',)
print(tu1+tu2)
>>> (1,2,3,'a','b')
返回值:tuple
乘法(复制)
符号: *
格式:tuple1 * num
返回值:tuple
索引
符号: [index]
格式:tuple[index]
返回值:object
切片
符号: [::]
格式:tuple[index1:index2:num]
返回值:tuple
成员检测
符号: in
格式: object in tuple
返回值:bool
2. 元祖的序列操作
长度
格式:len(tuple)
返回值:int
最大值
格式:max(tuple)
返回值:int
注:该函数只能用于纯数字的元祖。
最小值
格式:min(tuple)
返回值:int
注:该函数只能用于纯数字的元祖。
转换为元祖
格式:tuple(序列)
返回值:tuple
3. 元祖的遍历
使用for...in 遍历元祖
格式:for variable in tuple:
使用variable
例如:tu1 = (1,2,3,)
for i in tu1:
print(i)
>>> 1
>>> 2
>>> 3
使用while循环遍历元祖
格式:variable = 0
while variable <len(tuple):
使用元祖的元素(tuple[variable])
variable += 1
例如:tu1 = (1,2,3,)
i = 0
while i < len(tu1):
print(tu1[i])
i += 1
>>> 1
>>> 2
>>> 3
二级元祖的遍历
1. 格式:for variable1 in tuple:
for variable2 in variable1:
使用variable
例如:tu1 = ((1,2,3,),(4,5,6,),(7,8,9,),)
for i in tu1:
for j in i:
print(j)
#输出的结果j就是元祖中小元祖中的元素
2. 格式:for varialbe1,variable2,... in tuple:
直接使用variable1,variable2,...
例如:tu1 = ((1,2,3,),(4,5,6,),(7,8,9,),)
for n1,n2,n3 in tu1:
print(n1)
>>> 1
>>> 4
>>> 7
注:方法2只能遍历同等长度的二级元祖,由于元祖和列表可以相互转换,因此上述遍历的元祖中可以混合列表使用。
4. 元祖的推导式
简单的元祖推导式
格式:(variable for variable in tuple)
例如:tu1 = (1,2,3,4,5,)
ret = (i for i in tu1)
print(ret.__next__())
>>> 1
返回值:生成器
#把原元祖遍历完后生成一个生成器
稍作修改的元祖推导式
格式:(variable * 8 for variable in tuple)
例如:tu1 = (1,2,3,4,5,)
ret = (i*8 for i in tu1)
print(ret.__next__())
>>> 8
#对变量进行修改,可以是int和str类型,具体需根据元祖元素的类型来选择不同的类型。
带判断条件的元祖推导式
格式:(variable for variable in tuple if 条件表达式)
例如:tu1 = ('a','b','c','d','e',)
ret = (i*2 for i in tu1 if tu1.index(i) < 3)
print(ret.__next__())
>>> 'aa'
返回值:生成器
多个元祖推导式
格式:(varialbe1*variable2 for variable1 in tuple1 for variable2 in tuple2)
例如:tu1 = (2,1,3,)
tu2 = ('a','b','c','d')
ret = (i*j for i in tu1 for j in tu2)
print(ret.__next__())
>>> 'aa'
返回值:生成器
带判断条件的多个元祖推导式
格式:(variable1*variable2 for variable1 in tuple1 for variable2 in tuple2 if 条件表达式)
例如:tu1 = (3,1,2)
tu2 = ('a','b','c','d')
ret = (i*j for i in tu1 for j in tu2 if tu1.index(i)==tu2.index(j))
print(ret.__next__())
>>> 'aaa'
返回值:生成器
注:由于元祖和列表可以相互转换,因此上述推导式的元祖中的元祖可以混合列表使用,与列表推导式不同的就是返回值。列表推导式返回值为列表,元祖推导式返回值为生成器。
Python中tuple的功能介绍的更多相关文章
- Python中set的功能介绍
		
Set的功能介绍 1.集合的两种函数(方法) 1. 集合的内置函数 交集 格式:x.__and__(y)等同于x&y 例如:s1 = {'a',1,} s2 = {'b',1,} s3 = { ...
 - Python中dict的功能介绍
		
Dict的功能介绍 1. 字典的两种函数(方法) 1. 字典的内置函数 包含关系 格式:x.__contains__(key)等同于key in x 例如:dic = {'ab':23,'cd':34 ...
 - Python中list的功能介绍
		
List的功能介绍 1. 列表的两种方法 1. 列表的内置方法 列表的相加 格式:x.__add__(y)等同于x+y 例如:list1 = [1,2,3] print(list1.__add__([ ...
 - python中multiprocessing.pool函数介绍_正在拉磨_新浪博客
		
python中multiprocessing.pool函数介绍_正在拉磨_新浪博客 python中multiprocessing.pool函数介绍 (2010-06-10 03:46:5 ...
 - laravel框架中超实用的功能介绍
		
本篇文章给大家带来的内容是关于laravel框架中超实用的功能介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 让lumen的dd() dump()像laravel一样优雅 1 c ...
 - Docker 中的网络功能介绍 外部访问容器 容器互联  配置 DNS
		
Docker 中的网络功能介绍 | Docker 从入门到实践 https://vuepress.mirror.docker-practice.com/network/ Docker 允许通过外部访问 ...
 - python中int的功能简单介绍
		
Int的功能介绍 1. 绝对值 x.__abs__()等同于abs(x) 2. 加法 x.__add__(y)等同于x+y 3. 与运算 x.__and__(y)等同于x&y 4. 布尔运算 ...
 - python is、==区别;with;gil;python中tuple和list的区别;Python 中的迭代器、生成器、装饰器
		
1. is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同 == 比较的是两个对象的内容是否相等 2. with语句时用于对try except finally 的优 ...
 - python中的元类介绍
		
类也是对象 在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段,在python中也是成立的. class ObjectCreator: pass my_object = ObjectCre ...
 
随机推荐
- nat和napt技术
			
私网IP地址是指内部网络或主机的IP地址,公网IP地址是指在因特网上全球唯一的IP地址. RFC 1918为私有网络预留出了三个IP地址块,如下: A类:10.0.0.0-10.255.255.255 ...
 - Highcharts tooltip显示多条线的信息
			
直接上代码吧,简单粗暴点: tooltip: { shared: true, valueSuffix: '分', formatter: function () { let s = "&quo ...
 - Python内置函数(60)——compile
			
英文文档: compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1) Compile the source i ...
 - Python-Cpython解释器支持的进程与线程-Day9
			
Cpython解释器支持的进程与线程 阅读目录 一 python并发编程之多进程 1.1 multiprocessing模块介绍 1.2 Process类的介绍 1.3 Process类的使用 1.4 ...
 - big_menu菜单设置
			
1.页面 <script> $(function(){ $('.subnav .content-menu .on').after('<a class="add fb&quo ...
 - ELK学习总结(1-3)倒排索引
			
1.倒排索引(反向索引) 一种索引方法,用来存储在全文检索下某个单词在一个/组文档中的存储位置. 常规索引,文档->关键词,费时,得把一个文档全部遍历一遍 倒排索引,关键词->文档,全文搜 ...
 - RxJava系列5(组合操作符)
			
RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角 ...
 - MyBatis(二):Select语句传递参数的集中方案
			
从别人说的方案中看出,传递参数方案还挺多,不如自己整理下,以便以后使用过程中有个笔记回忆录. 1.传递一个参数的用法: 配置文件 <select id="getById" r ...
 - 框架学习笔记之Hibernate
			
一.什么是Hibernate Hibernate框架是当今主流的持久层框架之一,该框架是基于JDBC的主流持久化框架,使用它之后能够大大简化程序DAO层的代码量,提高工作效率,因此受广大开发人员的喜爱 ...
 - POJ-1287 Networking---裸的不能再裸的MST
			
题目链接: https://vjudge.net/problem/POJ-1287 题目大意: 模板 #include<iostream> #include<cstdio> # ...