Python数据容器之元组的用法

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 元组本质上是只读的列表list。除了不能修改之外,其它特性和列表相似。

这是机器未来的第8篇文章


1. 元组概述

元组本质上是只读的列表list。除了不能修改之外,其它特性和列表相似

列表是容器数据类型,可存储多个元素,且支持不同类型数据,可修改,有序列表,可重复。

举例:

x = (1, 'abc', True, {"name":"Joe"}, 1, 2, ['7', '89'])

x

(1, 'abc', True, {'name': 'Joe'}, 1, 2, ['7', '89'])

例子中展现了以下情况:

  • 不同的数据类型共存一个元组的情况:有数值类型、字符串、有列表、字典
  • 元组包含其他容器类型:字典{“name”:“Joe”}和列表[‘7’, ‘89’]
  • 元组展现了重复的数据,列表中存在2个1

2. 定义元组

定义元组的方法有2种,tuple函数和()元组运算符

2.1 tuple函数

首先看一下tuple()函数的描述:从输出的描述信息中可知,tuple仅支持1个参数:

  • 可为空,为空时则创建一个空列表

x1 = tuple()

print(x1, type(x1))

() <class 'tuple'>

不为空时,参数必须是可迭代类型

  • 什么是可迭代对象呢?举个简单的例子,能够在for循环中遍历使用的都是可迭代类型,具体的可迭类型有字符串、列表、元组、字典。

x0 = tuple()                         # 无参数,空元组

print(x0, type(x0))

x1 = tuple("name")                   # 用字符串初始化元组

print(x1, type(x1))

x2 = tuple([1, 2, 'a', 'b', 'c'])    # 用列表初始化元组    

print(x2, type(x2))

x3 = tuple((1, 2, 3, 4))             # 用元组初始化元组

print(x3, type(x3))

d1 = {"name":"zsm", "age":18, "sex":"male"}

x4 = tuple(d1.keys())                  # 用字典初始化元组:对于key和value需要分别处理

x5 = tuple(d1.values())

print(x4, type(x4), x5, type(x5))

2.2 ()元组运算符

x1 = ()                 # 空元组

print(x1, type(x1))

x2 = (1, 2, 3, 4)       # 有元素的元组

print(x2, type(x2))

3. 元组的不可修改性

元组为不可变数据类型,和字符串一样,存储于内存的堆区,是直接引用类型。举例:

x2 = (1, 2, 3, 4)       # 有元素的元组

print(x2, type(x2))

x2[2] = 7

特殊情况:元组中的元素如果是可变数据类型,那么可变数据变量中的元素是可以被修改的,其本质上符合可变数据类型可修改的逻辑。

举例:

x3 = (1, 2, 3, [5, 6, 7], (8, 9, 10))

x3[3] = 5   # 修改元组中的元素x3[3], 元组是不可变数据类型,元组中的元素不可以被修改

x3[3][0] = 20           # 元组中的元素是可变数据类型列表,修改列表中的元组是可行的

x3

x3[4][0] = 22   # 元组中的元素为元组类型时,同样时不可变数据类型,元组中的元素修改也会报错。

x3

4. 元组常用方法

x = (1, 2, 3, [5, 6, 7], (8, 9, 10))

dir(x)

['add',</br> 'class',</br> 'contains',</br> 'delattr',</br> 'dir',</br> 'doc',</br> 'eq',</br> 'format',</br> 'ge',</br> 'getattribute',</br> 'getitem',</br> 'getnewargs',</br> 'gt',</br> 'hash',</br> 'init',</br> 'init_subclass',</br> 'iter',</br> 'le',</br> 'len',</br> 'lt',</br> 'mul',</br> 'ne',</br> 'new',</br> 'reduce',</br> 'reduce_ex',</br> 'repr',</br> 'rmul',</br> 'setattr',</br> 'sizeof',</br> 'str',</br> 'subclasshook',</br> 'count',</br> 'index']

和列表list相对,方法少了很多,仅剩下count和index了。

4.1 count方法

统计元素在元素中的个数

x = (1, 'abc', True, {"name":"Joe"}, 1, 2, ['7', '89'])     # 注意:True也被认为是1

x.count(1)

4.2 index方法

返回元组中元素第一次出现的索引位置

x = (1, 'abc', True, {"name":"Joe"}, 1, 2, ['7', '89'])     # 2所在位置索引为5

x.index(2)

以上就是python列表的基础语法知识,更加深入的用法会在人工智能的学习过程中学到!

扩展:如果真的需要修改元组,有什么办法呢?

请关注下一节:序列。

《Python零基础快速入门系列》快速导航:

推荐阅读:


相关文章
|
4天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
14天前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
37 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
2天前
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
13 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
|
11天前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
30 2
|
12天前
|
JSON 安全 数据安全/隐私保护
深度剖析:Python如何运用OAuth与JWT,为数据加上双保险🔐
【10月更文挑战第10天】本文介绍了OAuth 2.0和JSON Web Tokens (JWT) 两种现代Web应用中最流行的认证机制。通过使用Flask-OAuthlib和PyJWT库,详细展示了如何在Python环境中实现这两种认证方式,从而提升系统的安全性和开发效率。OAuth 2.0适用于授权过程,JWT则简化了认证流程,确保每次请求的安全性。结合两者,可以构建出既安全又高效的认证体系。
32 1
|
7天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第12天】
29 5
|
1天前
|
存储 缓存 Docker
docker中挂载数据卷到容器
【10月更文挑战第16天】
7 2
|
3天前
|
存储 关系型数据库 MySQL
|
4天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第13天】
10 2
|
5天前
|
运维 监控 数据可视化
Docker容器可视化管理工具 - WGCLOUD基础介绍
WGCLOUD是新一代运维监测平台,它可以监控Docker容器的各种性能数据,比如内存,cpu,Image,运行时间,运行状态,端口映射等信息

热门文章

最新文章