Python常见数据结构

news/2024/9/25 15:27:58/

元组(Tuple)列表(List)是Python中两种主要的序列类型,它们在功能上有许多相似之处,但也存在一些关键的区别:

可变性:

列表是可变的,这意味着你可以更改列表的内容,例如添加、删除或更改元素。由于列表是可变的,我们可以使用append()、insert()、remove()等方法来修改列表。元组则没有这些方法,因为它不可变。
元组是不可变的,一旦创建就不能更改。尝试修改元组的操作将引发错误。
存储数据:元组是一种可以存储不同数据类型,且数据不可变的序列。

tup1 = ('physics', 'chemistry', 1997, 2000);

tup2 = (1, 2, 3, 4, 5 );

tup3 = "a", "b", "c", "d";

内存使用:

元组通常比列表使用更少的内存,因为它们的结构是固定的。
速度和安全性:因为元组是不可变的,所以它们的处理速度通常比列表快,同时在某些情况下也更安全,因为它们不能被意外修改。
语法:

列表使用方括号[]来创建,例如my_list = [1, 2, 3]。
元组使用圆括号()来创建,例如my_tuple = (1, 2, 3)。如果元组中只有一个元素,需要在元素后面加上逗号,例如single_element_tuple = (1,)。
内置函数:

某些内置函数,如min()和max(),可以接受列表作为参数,但不适用于元组。
元组内置函数
Python元组包含了以下内置函数
1、cmp(tuple1, tuple2):比较两个元组元素。
2、len(tuple):计算元组元素个数。
3、max(tuple):返回元组中元素最大值。
4、min(tuple):返回元组中元素最小值。
5、tuple(seq):将列表转换为元组。

定义的时候tuple包含的3个元素:

>>> tuple = (1, 2, 'a', 'b', ['A', 'B'])
>>> tuple[2][0] = 'X'
>>> tuple[2][1] = 'Y'
>>> tuple
(1, 2, 'a', 'b', ['X', 'Y'])
    表面上看,tuple的元素打印出来的结果确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的! 

字典(Dictionary)
键值对:字典存储键值对(key-value pairs),其中键(key)是唯一的,而值(value)可以是任何数据类型。
可变:字典是可变的,这意味着你可以在创建后添加、修改或删除键值对。
无序:字典是无序的,这意味着键值对的顺序可能会在不同的Python解释器或不同的运行之间改变。
查找速度:字典的查找速度非常快,它是通过哈希表实现的,具有平均时间复杂度O(1)。
语法:字典使用花括号{}创建,键值对之间用冒号:分隔,例如my_dict = {'key1': 'value1', 'key2': 'value2'}。
方法:字典提供了多种方法来操作字典,如keys(), values(), items(), get(), update()等。
集合(Set)
无序集合:集合是一个无序的不重复元素集。
可变:集合是可变的,你可以添加、删除或清除集合中的元素。
查找速度:集合的查找速度也很快,同样是通过哈希表实现的。
语法:集合使用花括号{}或set()函数创建,例如my_set = {1, 2, 3}或my_set = set([1, 2, 3])。
方法:集合提供了一些方法来操作集合,如add(), remove(), discard(), union(), intersection(), difference()等。
元素唯一性:集合中的所有元素都是唯一的,没有重复的元素。


http://www.ppmy.cn/news/1445361.html

相关文章

【Harmony3.1/4.0】笔记七-选项卡布局

概念 当页面信息较多时,为了让用户能够聚焦于当前显示的内容,需要对页面内容进行分类,提高页面空间利用率。Tabs组件可以在一个页面内快速实现视图内容的切换,一方面提升查找信息的效率,另一方面精简用户单次获取到的…

HEVC/H.265视频编解码学习笔记–框架及块划分关系

前言 由于本人在学习视频的过程中,觉得分块单元太多搞不清楚其关系,因此本文着重记录这些分块单元的概念以及关联。 一、框架 视频为一帧一帧的图像,其编码的主要核心是压缩空间以及时间上的冗余。因此,视频编码有帧内预测和帧间…

小米消金持续发力,全面强化金融消费者权益保护措施

近年来,电信网络欺诈手段层出不穷,深度伪造等互联网技术被误用,导致欺诈行为更加隐蔽。重庆小米消费金融有限公司(以下简称“小米消金”),作为一家持牌消费金融公司,深知保护消费者财产安全的重…

苹果公司大量订购电容按钮组件,或将用于即将推出的iPhone 16系列

据外媒报道,苹果公司已经从供应商订购了大量电容按钮组件,这些组件据称将用于即将推出的iPhone 16系列。根据《台湾经济日报》的一份报告,该订单包括系统级封装(SIP)模块,模块将用于将电容组件与两个Taptic Engine电机集成在一起。…

机器学习理论基础—聚类算法

机器学习理论基础—聚类算法 聚类的距离计算 聚类:物以类聚。将相似的样本聚集到一起,使得同一类簇的样本尽可能接近,不同类簇的样本尽可能远离。(无监督算法) 对于距离的定义:满足下面的四个特点 非负性同一性对称性…

在Docker中部署Java应用:Java版本隔离的实践案例

在Docker中部署Java应用:Java版本隔离的实践案例 人生就是一场又一场的相遇,一个明媚,一个忧伤,一个华丽,一个冒险,一个倔强,一个柔软,最后那个正在成长。 背景需求 在软件开发和部…

【软芯民用】水务大数据中心建设集成分析平台

水务大数据中心建设是以高效管理水务企业各类信息数据为中心,开展数据治理工作,旨在打造一个高性能、易管控的数据中心,方便快捷实现数据资源交换和全面共享。 水务大数据中心建设可为用户提供数据库平台搭建、外部数据接入、仪器仪表数据接入…

基于Transformer Models模型完成学习训练模型

在编程之前需要准备一些文件: 首先,先winR打开运行框,输入:PowerShell后 输入: pip install -U huggingface_hub 下载完成后,指定我们的环境变量: $env:HF_ENDPOINT "https://hf-mir…