当前位置: 首页 > news >正文

Python入门(6):Python序列结构-元组

在数学里,序列也称为数列,是指按照一定顺序排列的一列数,而在程序设计中,序列是一种常用的数据存储方式,几乎每种程序设计语言都提供了类似的数据结构,如C语言或Java 中的数组等。
在 Python 中,序列是最基本的数据结构。它是一块用于存放多个值的连续内存空问。Python 中内置了5个常用的序列结构,分别是列表、元组、集合、字典和字符串。

元组:

列表List使用[]中括号表示,而元组Tuple使用小括号()表示

元组类似于C#的Tuple[.net 4.0或之后版本],定义后无法篡改指定的元素,如需更改,必须全部实例化元组

在 Python 中,虽然元组是使用一对小括号将所有的元素括起来。但是实际上,小括号并不是必需的,只要将一组值用逗号分隔开来,Python 就可以认为它是元组。

如果要创建的元组只包括一个元素,则需要在定义元组时,在元素的后面加一个逗号","

在 Python 中,也可以创建空元组,如下空元组代码:
emptytuple=()

在 Python 中,可以使用 tuple()函数直接将 range()函数循环出来的结果转换为数值元组。

对于已经创建的元组,不再使用时,可以使用 del语句将其删除

元组是不可变序列,所以我们不能对它的单个元素值进行修改,但是元组也不是完全不能修改。我们可以对元组进行重新赋值。

在进行元组连接时,连接的内容必须都是元组。不能将元组和字符串或者列表进行连接。

在进行元组连接时,如果要连接的元组只有一个元素,一定不要忘记后面的逗号

元组推导式

randomNumber=(random.randint(10,100) for i in range(10))
print("返回生成器对象:",randomNumber)

返回生成器对象: <generator object <genexpr> at 0x000002042946D620>

使用元组推导式生成的结果并不是一个元组或者列表,而是一个生成器对象,这一点和列表推导式是不同的。要使用该生成器对象,可以将其转换为元组或者列表。其中,转换为元组使用 tuple()函数,而转换为列表则使用 list()函数。

元组与列表的区别

列表和元组的区别主要体现在以下5个方面。
(1)列表属于可变序列,它的元素可以随时修改或者删除,而元组属于不可变序列,其中的元素不
可以修改,除非整体替换。

(2)列表可以使用 append()、extend()、insert()、remove(), pop()等方法实现添加和修改列表元素而元组则没有这几个方法,因为不能向元组中添加和修改元素。同样,也不能删除元素。

(3)列表可以使用切片访问和修改列表中的元素。元组也支持切片,但是它只支持通过切片访问元
组中的元素,不支持修改。

(4)元组比列表的访问和处理速度快。所以如果只需要对其中的元素进行访问,而不进行任何修改,建议使用元组而不使用列表。
(5)列表不能作为字典的键,而元组可以。

测试程序如下:

文件TupleSnake.py

import random

tup=("身无彩凤双飞翼","心有灵犀一点通")
print(tup)
#python中元组可以省略小括号(),但必须用逗号分隔
tup="秦皇汉武","唐宗宋祖"
print(tup)
print(type(tup))
#python中空元素不是None,只是len()为0
print("空元组",(),len(()),()==None)
tup=tuple(range(10,50,5))
print(tup)
#元组也是使用索引来访问,如下访问前三个元素
print(tup[0:3])
for i in tup:
    print(i,end="\x20")  #不换行输出输入,end=XX,默认print是换行的
print("\n-----筛选整除-----")
for index,item in enumerate(tup):
    if item%10==0:
        print("--索引[",index,"]=",item,"能被10整除:")
    else:
        print("--索引[", index, "]=", item, "不能被10整除:")
tup+=(50,60)
print(tup)
tup=tup+(55,)
print(tup)
print("-----元组推导式-----")
randomNumber=(random.randint(10,100) for i in range(10))
print("返回生成器对象:",randomNumber)
randomNumber=tuple(randomNumber)
print("转化为元组对象:",randomNumber)
print("-----使用next()返回前三个元素,next()函数获取指定的元素并从集合中移除-----")
number=(i for i in range(50,60))
print(number.__next__())
print(number.__next__())
print(number.__next__())
print("-----将剩余的元素转化为元组-----")
number=tuple(number)
print(number)

运行如图:

http://www.dtcms.com/a/112121.html

相关文章:

  • FastAPI-Cache2: 高效Python缓存库
  • Linux系统调用编程
  • 嵌入式开发中栈溢出的处理方法
  • MySQL学习笔记(一)——MySQL下载安装配置
  • 一文全面了解GEO中的知识图谱
  • leetcode数组-长度最小的子数组
  • 【Git】“warning: LF will be replaced by CRLF”的解决办法
  • 【MySQL】DML:添加-修改-删除数据 (数据操作语言) 学习笔记
  • 投影向量的计算公式推导
  • RTOS任务句柄的作用
  • Unity的插件TouchScripts插件的新手入门指南和常用的API使用方法
  • Tradingview 策略分享 - SSL 混合和 CE 交易策略
  • Android Fresco 框架动态图支持模块源码深度剖析(七)
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(3)
  • LabVIEW中VISA Write 与 GPIB Write的差异
  • 【Linux】冯·诺依曼体系结构
  • kotlin中主构造函数是什么
  • Java EE期末总结(第一章)
  • 【图像处理基石】什么是neural style transfer?
  • python基础-09-读写文件
  • tp5 shell_exec() has been disabled for security reasons生成图片报错没权限
  • Android面试总结之算法思想篇
  • Mysql 中的 B+树 和 B 树在进行数据增删改查后的结构调整过程是怎样的?
  • MaxEnt模型全解析:从原理到 R 语言实战,开启生态环境研究新视野
  • 验证码实现
  • d202541
  • 量子计算入门:Qiskit实战量子门电路设计
  • 智慧农业大数据平台解决方案
  • 冰球比赛系统的结构设计:UML类图问题解析和绘图
  • 嵌入式Linux开发环境搭建,三种方式:虚拟机、物理机、WSL