元组(tuple)是Python中另一个重要的序列结构,与列表类型,也是由一系列按特定顺序排列的元素组成,但是他是不可变序列。在形式上元组的所有元素都放在"()“中,两个元素使用”,"分隔,在内容上可以将整数、实数、字符串、列表、元组等任何类型放入到元组中。

元组的创建和删除

使用赋值运算符直接创建

以下种形式都是可以的:

  1. num = (1, 3, 5, 2)
  2. num2 = ("哈哈", "嘿嘿")
  3. num3 = (1, 2, 3, 4, "再来一次")
  4. num4 = (1) #注意不加","是默认int类型
  5. num5 = (1,)
  6. num6 = 1, 2, 3 # 小括号不是必须的
  7. print(type(num))
  8. print(type(num2))
  9. print(type(num3))
  10. print(type(num4))
  11. print(type(num5))
  12. print(type(num6))
  13. 执行结果:
  14. <class 'tuple'>
  15. <class 'tuple'>
  16. <class 'tuple'>
  17. <class 'int'>
  18. <class 'tuple'>
  19. <class 'tuple'>

创建空元组

  1. tuplename = ()

创建数值元组

  1. num = tuple(range(10, 20, 2))
  2. print(num)
  3. 执行结果:
  4. (10, 12, 14, 16, 18)

删除元组

使用del

示例代码:

  1. num = tuple(range(10, 20, 2))
  2. print("删除前tuple")
  3. del num
  4. print(num)
  5. 执行结果:
  6. Traceback (most recent call last):
  7. 删除前tuple
  8. File "D:/xuexi/python/Python基础/Demo.py", line 9, in <module>
  9. print(num)
  10. NameError: name 'num' is not defined
  11. 报错的原因是前面使用del删除了,所以找不到这个tuple

访问元组元素

使用下标访问元素:

示例代码:

  1. num = tuple(range(10, 20, 2))
  2. print(num[1:])
  3. print(num[:])
  4. print(num[:5])
  5. print(num[1:2])
  6. 执行结果:
  7. (12, 14, 16, 18)
  8. (10, 12, 14, 16, 18)
  9. (10, 12, 14, 16, 18)
  10. (12,)

遍历元组

示例代码:

  1. num = tuple(range(10, 20, 2))
  2. for i in num:
  3. print(i)
  4. 执行结果:
  5. 10
  6. 12
  7. 14
  8. 16
  9. 18

修改元组元素

示意代码1:

  1. one = ("南山南", 1, 2, 3)
  2. print("原始元组:", one)
  3. two = one + ("哈哈",)
  4. print("修改后元组:", two)
  5. 执行结果:
  6. 原始元组: ('南山南', 1, 2, 3)
  7. 修改后元组: ('南山南', 1, 2, 3, '哈哈')

示意代码3:

  1. one = ("南山南", 1, 2, 3)
  2. one = (1, 2, 3, 4, "再来一次")
  3. print(one)
  4. 执行结果:
  5. (1, 2, 3, 4, '再来一次')

元组推导式

示例代码1:

  1. import random
  2. randomnumber = (random.randint(10, 100) for i in range(10))# random.randint(10, 100)是添加的内容,range(10)是限制个数
  3. randomnumber = tuple(randomnumber) # 不进行转换直接输出显示为一个生成器对象
  4. print(randomnumber)
  5. 执行结果:
  6. (27, 80, 58, 56, 59, 73, 66, 11, 56, 83)

示例代码2:

  1. num = (i for i in range(10))
  2. num = tuple(num)
  3. print(num)
  4. 执行结果:
  5. (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

示例代码3:

  1. num = (i for i in range(5))
  2. print(num.__next__())
  3. print(num.__next__())
  4. print(num.__next__())
  5. print(num.__next__()) # 注意__next__()取值最大长度不能超过元组长度,否则会报错StopIteration
  6. num = tuple(num)
  7. print(f"前面去了还剩下的有吗?还有{len(num)}个 →",tuple(num))
  8. 执行结果:
  9. 0
  10. 1
  11. 2
  12. 3
  13. 前面去了还剩下的有吗?还有1 (4,)

以上结论是使用了__next__()一次元组中就会少一个元素

Python元组(tuple)的更多相关文章

  1. Python 元组 tuple() 方法

    描述 Python 元组 tuple() 方法用于将可迭代对象(字符串.列表.元祖.字典)转换为元组. 语法 tuple() 方法语法: tuple(iterable) 参数 iterable -- ...

  2. Python元组tuple(不可变)

    Python元组Tuple(不可变): 元组的特点: 1.元组的初始化: tuple = (1, )  #元组只有一个元素的话,初始化时要加,否则当做元素的普通变量类型处理 tuple = (1, 2 ...

  3. python 元组tuple - python基础入门(14)

    在上一篇文章中我们讲解了关于python列表List的相关内容,今天给大家解释一下列表List的兄弟 – 元组,俗称: tuple. 元组tuple和列表List类似,元组有如下特点: 1.由一个或者 ...

  4. python 元组tuple介绍,使用。

    原文 https://blog.csdn.net/ruanxingzi123/article/details/83184909 一  是什么? # python 元组tuple? ''' 元祖tupl ...

  5. Python—元组tuple

    列表的知识其实就类似于c语言中的数组,可插入.修改.list=[a,b,c,d] 而元组tuple,一旦初始化即不可修改.好处与绝对安全. 定义一个空的元组:t=() 定义只有一个元素的元组:t=(1 ...

  6. Python - 元组(tuple) 详解 及 代码

    元组(tuple) 详解 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/17290967 元组是存放任意元素集合,不能修 ...

  7. Python 元组(Tuple)操作详解

    Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号, 列表使用方括号,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可 一.创建元组 代码如下: tup1 = (' ...

  8. Python 元组Tuple概念和操作

    # 元组概念:有序的不可变的元素集合 # 和列表的区别就是, 元组元素不能修改 # 定义 # 一个元素的写法 # (666,) t = (666,) #正确写法 t = (666) #错误写法,括号当 ...

  9. Python 元组 (tuple)

    作者博文地址:https://www.cnblogs.com/liu-shuai/ Python的元组与列表类似,同样可通过索引访问,支持异构,任意嵌套.不同之处在于元组的元素不能修改.元组使用小括号 ...

随机推荐

  1. Hibernate_day04

    Hibernate_day04 上节内容 1 表与表之间关系回顾 (1)一对多(客户和联系人) (2)多对多(用户和角色) 2 hibernate一对多操作 (1)一对多映射配置 (2)一对多级联保存 ...

  2. /bin/bash^M: bad interpreter: No such file or directory 解决办法

    参考:-bash: ./my_script: /bin/bash^M: bad interpreter: No such file or directory [duplicate] 有的时候运行.sh ...

  3. CF1091F New Year and the Mallard Expedition

    题目地址:CF1091F New Year and the Mallard Expedition 题意比较复杂,整理一下: \(n\) 段,每段有两个属性:长度,地形(G,W,L) 有三种运动方式: ...

  4. java中equals,hashcode和==的区别

    https://www.cnblogs.com/kexianting/p/8508207.html

  5. SpringSecurity实现记住我功能

    ⒈表单添加 <form action="/authentication/form" method="post"> <table> < ...

  6. web应用与http协议

    web应用 Web应用程序是一种可以通过web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件. 应用程序有两种模式C/S.B/S.C/S是客户端/ ...

  7. 用ARX自定义实体

      本文介绍了构造自定义实体的步骤.必须继承的函数和必须注意的事项 1.新建一个从AcDbEntity继承的类,如EntTest,必须添加的头文件: "stdarx.h",&quo ...

  8. hibernate框架学习之核心API

    ConfigurationSessionFactorySessionTransactionQueryCriteria Configuration Configuration对象用于封装Hibernat ...

  9. 通过URL传递中文参数的乱码处理

    环境:web.xml中配置了 <filter> <filter-name>encodingFilter</filter-name> <filter-class ...

  10. 带jdk15类似的jar配置

    针对部分jar文件名带有jdk15结尾的依赖配置时,需要添加<classifier>标签进行区分 比如针对:json-lib-2.4-jdk15.jar的jar依赖配置 <depen ...