Tuple的功能介绍

1. 元祖的两种方法

1. 元祖的内置方法

  1. 两个元祖的相加

    1. 格式:x.__add__(y)等同于x+y
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__add__((2,3,4,)))
    4. >>> (1, 2, 3, 2, 3, 4)
    5. 返回值:tuple
    6. #只能是两个元祖相加,生成一个新元祖
  2. 判断是否是包含关系

    1. 格式:x.__contains__(y)等同于y in x
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__contains__(3))
    4. >>> True
    5. 返回值:bool
    6. #上述的y可以是任意对象object
  3. 判断两个元祖是否相等

    1. 格式:x.__eq__(y)等同于x==y
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__eq__((2,3,)))
    4. >>> False
    5. 返回值:bool
    6. #上述的y只能是元祖
  4. 大于等于

    1. 格式:x.__ge__(y)等同于x>=y
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__ge__((2,3,)))
    4. >>> False
    5. 返回值:bool
    6. #上述的y只能是元祖

    注:两个元祖判断大小主要依据为元祖的第一个元素的大小。

  5. 访问属性

    1. 格式:x.__getattribute__(self,name)
    2. 返回值:tuple
  6. 取出指定索引的值

    1. 格式:x.__getitem__(index)等同于tuple[index]
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__getitem___(2))
    4. >>> 3
    5. 返回值:object
  7. 元祖元素化

    1. 格式:x.__getnewargs__()
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__getnewargs__())
    4. >>> ((1,2,3,),)
    5. 返回值:tuple
    6. #把原元祖作为一个新元祖的一个元素
  8. 大于

    1. 格式:x.__gt__(y)等同于x>y
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__gt__((2,3,)))
    4. >>> False
    5. 返回值:bool
    6. #上述的y只能是元祖

    注:两个元祖判断大小主要依据为元祖的第一个元素的大小。

  9. 哈希化

    1. 格式:x.__hash__()等同于hash(x)
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__hash__())
    4. >>> 2528502973977326415
    5. 返回值:int
  10. 迭代器

    1. 格式:x.__iter__()等同于iter(x)
    2. 例如:tu1 = (1,2,3,)
    3. die = tu1.__iter__()
    4. print(die.__next__())
    5. >>> 1
    6. 返回值:迭代器
  11. 小于等于

    1. 格式:x.__le__(y)等同于x<=y
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__le__((2,3,)))
    4. >>> True
    5. 返回值:bool
    6. #上述的y只能是元祖

    注:两个元祖判断大小主要依据为元祖的第一个元素的大小。

  12. 长度

    1. 格式:x.__len__()等同于len(x)
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__len__())
    4. >>> 3
    5. 返回值:int
  13. 小于

    1. 格式:x.__lt__(y)等同于x<y
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__lt__((2,3,)))
    4. >>> True
    5. 返回值:bool
    6. #上述的y只能是元祖

    注:两个元祖判断大小主要依据为元祖的第一个元素的大小。

  14. 相乘(复制)

    1. 格式:x.__mul__(num)等同于x*num
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__mul__(2))
    4. >>> (1,2,3,1,2,3)
    5. 返回值:tuple
  15. 不等于

    1. 格式:x.__ne__(y)等同于x!=y
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__ne__((2,3,)))
    4. >>> True
    5. 返回值:bool
    6. #上述的y只能是元祖
  16. 创建新元祖

    1. 格式:x.__new__(tuple)
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__new__(tuple))
    4. >>> ()
    5. 返回值:tuple
  17. 内置转换方法

    1. 格式:x.__repr__(self)
    2. 返回值:tuple
  18. 右→左 相乘(复制)

    1. 格式:x.__rmul__(num)等同于num*x
    2. 例如:tu1 = (1,2,3,)
    3. print(tu1.__rmul__(2))
    4. >>> (1,2,3,1,2,3)
    5. 返回值:tuple
  19. 元祖在内存中的大小,转换为字节进行计算

    1. 格式:x.__sizeof__()
    2. 例如:tu1 = (2,3,)
    3. tu2 = (4,5,6,)
    4. print(tu1.__sizeof__())
    5. >>> 40
    6. print(tu2.__sizeof__())
    7. >>> 48
    8. 返回值:int
    9. #元祖的长度不同,导致元祖在内存中大小也不一样。

2. 常用方法

  1. 计数

    1. 格式:x.count(value)
    2. 例如:tu1 = (1,2,3,1,2,3,)
    3. print(tu1.count(2))
    4. >>> 2
    5. 返回值:int
  2. 索引

    1. 格式:x.index(value,start,end)
    2. 例如:tu1 = (1,2,3,1,2,3,)
    3. print(tu1.index(2,1,4))
    4. >>> 1
    5. 返回值:int
    6. #不指定范围时,默认全元祖搜索

2. 元祖操作

1. 元祖的基础操作

  1. 加法

    1. 符号: +
    2. 格式:tuple1 + tuple2
    3. 例如:tu1 = (1,2,3,)
    4. tu2 = ('a','b',)
    5. print(tu1+tu2)
    6. >>> (1,2,3,'a','b')
    7. 返回值:tuple
  2. 乘法(复制)

    1. 符号: *
    2. 格式:tuple1 * num
    3. 返回值:tuple
  3. 索引

    1. 符号: [index]
    2. 格式:tuple[index]
    3. 返回值:object
  4. 切片

    1. 符号: [::]
    2. 格式:tuple[index1:index2:num]
    3. 返回值:tuple
  5. 成员检测

    1. 符号: in
    2. 格式: object in tuple
    3. 返回值:bool

2. 元祖的序列操作

  1. 长度

    1. 格式:len(tuple)
    2. 返回值:int
  2. 最大值

    1. 格式:max(tuple)
    2. 返回值:int

    注:该函数只能用于纯数字的元祖。

  3. 最小值

    1. 格式:min(tuple)
    2. 返回值:int

    注:该函数只能用于纯数字的元祖。

  4. 转换为元祖

    1. 格式:tuple(序列)
    2. 返回值:tuple

3. 元祖的遍历

  1. 使用for...in 遍历元祖

    1. 格式:for variable in tuple:
    2. 使用variable
    3. 例如:tu1 = (1,2,3,)
    4. for i in tu1:
    5. print(i)
    6. >>> 1
    7. >>> 2
    8. >>> 3
  2. 使用while循环遍历元祖

    1. 格式:variable = 0
    2. while variable <len(tuple):
    3. 使用元祖的元素(tuple[variable])
    4. variable += 1
    5. 例如:tu1 = (1,2,3,)
    6. i = 0
    7. while i < len(tu1):
    8. print(tu1[i])
    9. i += 1
    10. >>> 1
    11. >>> 2
    12. >>> 3
  3. 二级元祖的遍历

    1. 1. 格式:for variable1 in tuple:
    2. for variable2 in variable1:
    3. 使用variable
    4. 例如:tu1 = ((1,2,3,),(4,5,6,),(7,8,9,),)
    5. for i in tu1:
    6. for j in i:
    7. print(j)
    8. #输出的结果j就是元祖中小元祖中的元素
    9. 2. 格式:for varialbe1,variable2,... in tuple:
    10. 直接使用variable1variable2,...
    11. 例如:tu1 = ((1,2,3,),(4,5,6,),(7,8,9,),)
    12. for n1,n2,n3 in tu1:
    13. print(n1)
    14. >>> 1
    15. >>> 4
    16. >>> 7

    注:方法2只能遍历同等长度的二级元祖,由于元祖和列表可以相互转换,因此上述遍历的元祖中可以混合列表使用。

4. 元祖的推导式

  1. 简单的元祖推导式

    1. 格式:(variable for variable in tuple)
    2. 例如:tu1 = (1,2,3,4,5,)
    3. ret = (i for i in tu1)
    4. print(ret.__next__())
    5. >>> 1
    6. 返回值:生成器
    7. #把原元祖遍历完后生成一个生成器
  2. 稍作修改的元祖推导式

    1. 格式:(variable * 8 for variable in tuple)
    2. 例如:tu1 = (1,2,3,4,5,)
    3. ret = (i*8 for i in tu1)
    4. print(ret.__next__())
    5. >>> 8
    6. #对变量进行修改,可以是int和str类型,具体需根据元祖元素的类型来选择不同的类型。
  3. 带判断条件的元祖推导式

    1. 格式:(variable for variable in tuple if 条件表达式)
    2. 例如:tu1 = ('a','b','c','d','e',)
    3. ret = (i*2 for i in tu1 if tu1.index(i) < 3)
    4. print(ret.__next__())
    5. >>> 'aa'
    6. 返回值:生成器
  4. 多个元祖推导式

    1. 格式:(varialbe1*variable2 for variable1 in tuple1 for variable2 in tuple2)
    2. 例如:tu1 = (2,1,3,)
    3. tu2 = ('a','b','c','d')
    4. ret = (i*j for i in tu1 for j in tu2)
    5. print(ret.__next__())
    6. >>> 'aa'
    7. 返回值:生成器
  5. 带判断条件的多个元祖推导式

    1. 格式:(variable1*variable2 for variable1 in tuple1 for variable2 in tuple2 if 条件表达式)
    2. 例如:tu1 = (3,1,2)
    3. tu2 = ('a','b','c','d')
    4. ret = (i*j for i in tu1 for j in tu2 if tu1.index(i)==tu2.index(j))
    5. print(ret.__next__())
    6. >>> 'aaa'
    7. 返回值:生成器

    注:由于元祖和列表可以相互转换,因此上述推导式的元祖中的元祖可以混合列表使用,与列表推导式不同的就是返回值。列表推导式返回值为列表,元祖推导式返回值为生成器。

Python中tuple的功能介绍的更多相关文章

  1. Python中set的功能介绍

    Set的功能介绍 1.集合的两种函数(方法) 1. 集合的内置函数 交集 格式:x.__and__(y)等同于x&y 例如:s1 = {'a',1,} s2 = {'b',1,} s3 = { ...

  2. Python中dict的功能介绍

    Dict的功能介绍 1. 字典的两种函数(方法) 1. 字典的内置函数 包含关系 格式:x.__contains__(key)等同于key in x 例如:dic = {'ab':23,'cd':34 ...

  3. Python中list的功能介绍

    List的功能介绍 1. 列表的两种方法 1. 列表的内置方法 列表的相加 格式:x.__add__(y)等同于x+y 例如:list1 = [1,2,3] print(list1.__add__([ ...

  4. python中multiprocessing.pool函数介绍_正在拉磨_新浪博客

    python中multiprocessing.pool函数介绍_正在拉磨_新浪博客     python中multiprocessing.pool函数介绍    (2010-06-10 03:46:5 ...

  5. laravel框架中超实用的功能介绍

    本篇文章给大家带来的内容是关于laravel框架中超实用的功能介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 让lumen的dd() dump()像laravel一样优雅 1 c ...

  6. Docker 中的网络功能介绍 外部访问容器 容器互联 配置 DNS

    Docker 中的网络功能介绍 | Docker 从入门到实践 https://vuepress.mirror.docker-practice.com/network/ Docker 允许通过外部访问 ...

  7. python中int的功能简单介绍

    Int的功能介绍 1. 绝对值 x.__abs__()等同于abs(x) 2. 加法 x.__add__(y)等同于x+y 3. 与运算 x.__and__(y)等同于x&y 4. 布尔运算 ...

  8. python is、==区别;with;gil;python中tuple和list的区别;Python 中的迭代器、生成器、装饰器

    1. is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同 == 比较的是两个对象的内容是否相等 2. with语句时用于对try except finally 的优 ...

  9. python中的元类介绍

    类也是对象 在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段,在python中也是成立的. class ObjectCreator: pass my_object = ObjectCre ...

随机推荐

  1. 集合Collection总览

    前言 声明,本文使用的是JDK1.8 从今天开始正式去学习Java基础中最重要的东西--->集合 无论在开发中,在面试中这个知识点都是非常非常重要的,因此,我在此花费的时间也是很多,得参阅挺多的 ...

  2. 《javascript设计模式与开发实践》阅读笔记(12)—— 享元模式

    享元模式 享元(flyweight)模式是一种用于性能优化的模式,"fly"在这里是苍蝇的意思,意为蝇量级.享元模式的核心是运用共享技术来有效支持大量细粒度的对象. 享元模式的核心 ...

  3. Java.nio-随机读写汉字

    笔者最近在用多线程来计算中文文本的标点符号数目,遇到了以下问题: 在Windows下,文本中汉字通常采用Unicode编码,这就导致需要随机(RandomAccessFile)读取文本时,产生乱码现象 ...

  4. 帧动画的创建方式 - 纯Java代码方式

    废话不多说,先看东西 帧动画的创建方式主要以下2种: * 用xml创建动画: * 纯Java代码创建动画:   本文内容主要关注 纯java代码创建帧动画 的方式: 用xml创建帧动画:http:// ...

  5. Python内置函数(13)——bytearray

    英文文档: class bytearray([source[, encoding[, errors]]]) Return a new array of bytes. The bytearray cla ...

  6. 新概念英语(1-95)Tickets,please!

    Lesson 95 Tickets, please. 请把车票拿出来. Listen to the tape then answer this question. Why did George and ...

  7. Spring Security入门(2-3)Spring Security 的运行原理 4 - 自定义登录方法和页面

    参考链接,多谢作者: http://blog.csdn.net/lee353086/article/details/52586916 http元素下的form-login元素是用来定义表单登录信息的. ...

  8. API之实用工具Postman 使用方法

    测试接口与文档信息文件 Postman 安装与入门教程 下载与安装 官方网站:www.getpostman.com 下载完成后,直接安装 输入2次邮箱,密码,即可注册并登陆! 开发者使用: 创建文件夹 ...

  9. zipline-benchmarks.py文件改写

    改写原因:在这个模块中的 get_benchmark_returns() 方法回去谷歌财经下载对应SPY(类似于上证指数)的数据,但是Google上下载的数据在最后写入Io操作的时候会报一个恶心的编码 ...

  10. Spring(三):Spring整合Hibernate

    背景: 本文主要介绍使用spring-framework-4.3.8.RELEASE与hibernate-release-5.2.9.Final项目整合搭建的过程. 开发环境简介: 1).jdk 1. ...