Python常见数据结构

devtools/2024/9/24 13:21:03/

元组(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/devtools/24981.html

相关文章

如何在Pycharm中使用Git来进行版本管理

推荐视频:git pycharm的使用 连接github_哔哩哔哩_bilibilipycharm git的使用简单介绍 最近应该不会更新技能相关视频了 准备开题, 视频播放量 13042、弹幕量 2、点赞数 208、投硬币枚数 143、收藏人数 343、转发人数 58, 视频作者 呃呃燕, 作者简介 努力入门的计算机双非研究生…

STM32 学习13 低功耗模式与唤醒

STM32 学习13 低功耗模式与唤醒 一、介绍1. STM32低功耗模式功能介绍2. 常见的低功耗模式(1)**睡眠模式 (Sleep Mode)**:(2)**停止模式 (Stop Mode)**:(3)**待机模式 (Standby Mode)**: 二、睡眠模式1. 进入…

算法设计与分析 3.2 牛顿法及改进、迭代法、矩阵谱半径、雅可比迭代、高斯迭代

思考题1 改进cosx?优化算法 关键点在于cos计算过于麻烦,而每次都要求sinx的值 故直接简化为cosx的导数 -sinx 即: 原://double daoshu(double x) { // return 18 * x - cos(x); //} 改:double daoshu(double x) {retu…

摩根大通推出创新工具 FlowMind,引领金融自动化新变革

近日,摩根大通人工智能研究部推出了一款极具创新性的工具——FlowMind,为金融行业带来了全新的工作模式和效率提升。 FlowMind 能够自动化金融工作流程,在信贷审批、风险评估、合规监测等重要任务中发挥着关键作用。它利用 GPT 自动生成工作…

2024年十五届蓝桥杯省赛大学B组真题(Java完整版)

2024年十五届蓝桥杯省赛大学B组真题(Java) 前言: 赛后一直犹豫要不要对比赛进行复盘出个题解,拖到了现在,终于也是等到比赛结果出来,看到没有辜负个人期望成功取得省一,决定在国赛前对省赛进行…

YOLOV8 pycharm

1 下载pycharm 社区版 https://www.jetbrains.com/zh-cn/pycharm/download/?sectionwindows 2 安装 3 新建 4 选择 文件-> setting 配置环境变量 5 添加conda 环境

Xcode安装与配置

Xcode的安装步骤通常包括从Mac App Store下载Xcode、安装Xcode、启动并配置Xcode等。具体如下: 下载安装:前往Mac App Store,搜索Xcode并下载。由于Xcode体积较大,下载可能需要一些时间。安装:下载完成后,…

windows驱动开发-I/O请求(三)

之前的两篇文章已经将I/O请求的使用说清楚了,接下来试着探索一下I/O请求的其它方面。 I/O请求原理 如果对IRP结构有印象的话,会发现IRP结构中有一个DeviceObject成员以及FileObject成员,这里已经隐含了IRP是如何传递的。 在DriverEntry中&…