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

python中的列表、元组、字典的介绍与使用

目录

一、区别介绍

1.使用场景以及区别图

2.详细介绍

列表

元组

字典

二、例子操作

(一)列表list

1.定义和初始化

2.访问元素(下标)

3.修改元素(下标)

4.添加元素(append、下标insert)

5.删除元素(指定元素名、下标)

6.切片取值(下标)

 7.遍历列表

(二)元组tuple

1.定义和初始化

2.访问元素(下标) 

3.元组不可变

4.遍历元组

5.切片操作

(三)字典dict

1.定义和初始化

2.访问元素(指定键)

3.修改元素(指定键)

4.删除元素(指定键)pop和del

 5.遍历字典--items()

6.获取字典的键、值、键值对 


一、区别介绍

在 Python 中,列表(list)、元组(tuple)和字典(dictionary)是三种常见的数据结构。 

1.使用场景以及区别图

何时使用

  • 列表:当你需要一个可修改、顺序的容器时。
  • 元组:当你需要一个不可以修改的顺序容器时,通常用于函数返回多个值等。
  • 字典:当你需要根据键快速查找值时,适用于存储关联数据。

区别图

2.详细介绍

列表

定义:列表是一有序的可变容器,可以包含多个元素。

语法:使用[ ]来定义

可变性:列表是可变的,可以修改、添加或删除元素

特点:1.有序:列表中的元素有顺序,可以通过索引访问。2.支持重复操作。3.支持切片操作

元组

定义:元组是一个有序的不可变容器,可以包含多个元素。

语法:使用小括号()来定义

可变性:元组是不可变的,创建后不能修改、添加或者删除元素。

特点:1.有序:元组中的元素有顺序,可以通过索引访问。2.不支持重复元素的删除或者修改。3.比列表占用内存少,且操作速度更快,因此适合存储不需要更改的数据

字典

定义:字典是一个无序的可变容器,用于存储键值对。

语法:使用花括号{ }来定义,键值对通过:分隔,键值对之间用,分隔。

可变性:字典是可变的,可以修改的、添加和删除键值对。

特点:1.无序:字典中的元素没有顺序。2.键是唯一的,不可重复。3.键必须是不可变的数据类型(如字符串、数字、元组),值可以是任意的数据类型。

二、例子操作

(一)列表list

1.定义和初始化
#创建一个包含整数的列表
my_list = [1,2,3,4,5,6,7,8,9]
print(my_list)  #输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
2.访问元素(下标)

 索引下标为0的元素

my_list = [1,2,3,4,5,6,7,8,9]
#索引下标为0的元素
print(my_list[0])  #输出:1

访问列表中的最后一个元素

my_list = [1,2,3,4,5,6,7,8,9]
#访问列表中的最后一个元素
print(my_list[-1])  #输出:9
3.修改元素(下标)

 将下标为1的元素修改为hellow

my_list = [1,2,3,4,5,6,7,8,9]
my_list[1]="hellow"
print(my_list)   #输出:[1, 'hellow', 3, 4, 5, 6, 7, 8, 9]
4.添加元素(append、下标insert)

在列表的末尾添加一个元素666 

my_list = [1,2,3,4,5,6,7,8,9]
# 在列表的末尾添加一个元素666
my_list.append(666)
print(my_list)   #输出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 666]

 在列表指定位置插入指定的元素888

my_list = [1,2,3,4,5,6,7,8,9]
# 在列表下标为2的位置插入一个888的元素
my_list.insert(2,888)
print(my_list)   #输出:[1, 2, 888, 3, 4, 5, 6, 7, 8, 9]
5.删除元素(指定元素名、下标)

 删除指定的元素666

my_list = [1,2,3,4,5,666,7,8,9]
# 删除列表里面666这个元素
my_list.remove(666)
print(my_list)   #输出:[1, 2, 3, 4, 5, 7, 8, 9]

 删除指定下标的元素---pop

my_list = [1,2,3,4,5,6,7,8,9]
# 删除列表里面下标为1的元素
print(my_list.pop(1))  #输出2。代表1下标为的这个元素2已经被删除
print(my_list)   #输出:[1, 3, 4, 5, 6, 7, 8, 9]。可以看到列表里面没有2了

  删除指定下标的元素--del

my_list = [1,2,3,4,5,6,7,8,9]
# 删除列表里面下标为1的元素
del my_list[1]
print(my_list)   #输出:[1, 3, 4, 5, 6, 7, 8, 9]。可以看到列表里面没有2了
6.切片取值(下标)
my_list = [1,2,3,4,5,6,7,8,9]
#列表切片,取下标1~4(不包括下标4)的值
print(my_list[1:4])   #输出:[2, 3, 4]
 7.遍历列表
my_list = [1,2,3,4,5,6,7,8,9]
for i in my_list:print(i) #竖的输出:1 2 3 4 5 6 7 8 9

(二)元组tuple

1.定义和初始化
# 创建一个包含整数的元组
my_tuple = (1, 2, 3, 4)
print(my_tuple)  # 输出: (1, 2, 3, 4)
2.访问元素(下标) 

访问下标为0的元素 

my_tuple = (1, 2, 3, 4)
#访问下标为0的元素
print(my_tuple[0])#1

访问最后一个元素 

my_tuple = (1, 2, 3, 4)
#访问最后一个元素
print(my_tuple[-1])#4
3.元组不可变

尝试修改元组,出现不可修改 

my_tuple = (1, 2, 3, 4)
#修改下标为0的元素为666
print(my_tuple[0]==666)#输出:False
4.遍历元组

循环遍历出元组所有的元素

my_tuple = (1, 2, 3, 4)
#遍历元组
for i in my_tuple:print(i)#竖着输出1 2 3 4
5.切片操作
my_tuple = (1, 2, 3, 4)
#切片下标1~3(不包含)
print(my_tuple[0:3])#输出:(1, 2, 3)

(三)字典dict

1.定义和初始化
# 创建一个字典
my_dict = {'name':'zhangsan','age':20,'sex':'男'}
print(my_dict)  # 输出: {'name': 'zhangsan', 'age': 20, 'sex': '男'}
2.访问元素(指定键)

通过键访问值[ ]

my_dict = {'name':'zhangsan','age':20,'sex':'男'}
#通过键访问值
print(my_dict['name'])  # 输出: zhangsan

通过键访问值get 

my_dict = {'name':'zhangsan','age':20,'sex':'男'}
#通过键访问值
print(my_dict.get("name"))  # 输出: zhangsan#如果不存在会返回默认值,如果定义的话
#例如country = my_dict.get('country', 'USA')
#print(country)  # 输出: USA
3.修改元素(指定键)

通过指定键改变值 

my_dict = {'name':'zhangsan','age':20,'sex':'男'}
#通过键改变值
my_dict["name"]="lisi"
print(my_dict)  # 输出: {'name': 'lisi', 'age': 20, 'sex': '男'}

新增键值对(已有的键就修改,没有的键就是新增)

my_dict = {'name':'zhangsan','age':20,'sex':'男'}
#添加新的键值对
my_dict["bb"]="王五"
print(my_dict)  # 输出: {'name': 'zhangsan', 'age': 20, 'sex': '男', 'bb': '王五'}
4.删除元素(指定键)pop和del

使用pop通过键删除对应的键值对 

my_dict = {'name':'zhangsan','age':20,'sex':'男'}
#通过键删除对应的键和值
print(my_dict.pop("sex")) #输出:男
print(my_dict)  # 输出:{'name': 'zhangsan', 'age': 20}

 使用del通过键删除对应的键值对 

my_dict = {'name':'zhangsan','age':20,'sex':'男'}
#通过键删除对应的键和值
del my_dict["sex"]
print(my_dict)  # 输出:{'name': 'zhangsan', 'age': 20}
 5.遍历字典--items()
my_dict = {'name':'zhangsan','age':20,'sex':'男'}
for key,value in my_dict.items():print(f"{key}:{value}")  # 竖着输出:name:zhangsan  age:20  sex:男
6.获取字典的键、值、键值对 

通过key获取全部键

my_dict = {'name':'zhangsan','age':20,'sex':'男'}
print(my_dict.keys())#输出:dict_keys(['name', 'age', 'sex'])

通过value获取全部值

my_dict = {'name':'zhangsan','age':20,'sex':'男'}
print(my_dict.values())#dict_values(['zhangsan', 20, '男'])

 获取所有键值对

my_dict = {'name':'zhangsan','age':20,'sex':'男'}
print(my_dict)#输出:{'name': 'zhangsan', 'age': 20, 'sex': '男'}

有什么问题都可以评论区留言,看见都会回复的

如果你觉得本篇文章对你有所帮助的,把“文章有帮助的”打在评论区

多多支持吧!!!

点赞收藏评论,当然也可以点击文章底部的红包或者👇订阅付费文章创作支持一下了。抱拳了!

vip文章:http://t.csdn.cn/Uq5j1

bug大全订阅文章:http://t.csdn.cn/j6UyR

相关文章:

python中的列表、元组、字典的介绍与使用

目录 一、区别介绍 1.使用场景以及区别图 2.详细介绍 列表 元组 字典 二、例子操作 (一)列表list 1.定义和初始化 2.访问元素(下标) 3.修改元素(下标) 4.添加元素(append、下标insert) 5.删除…...

深入浅出:PHP中的表单处理全解析

引言 在Web开发的世界里,表单是用户与服务器之间交互的重要桥梁。它们允许用户提交信息,并通过后端语言(如PHP)进行处理。本文将带你深入了解PHP中的表单处理,从基础的创建和提交到高级的安全措施和实用技巧&#xff…...

双绞线直连两台电脑的方法及遇到的问题

文章目录 前言一、步骤二、问题总结:问题1:遇到ping不通的问题。问题2:访问其他电脑上的共享文件时提示输入网络凭证问题3:局域网共享文件时提示“没有权限访问,请与网络管理员联系请求访问权限” 前言 办公室里有两台电脑,一台装了显卡用于…...

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现: 2023 年开年,ChatGPT 作为一款聊天型AI工具,成为了超越疫情的热门词条;而在AI的另一个分支——绘图领域,一款名为Midjourney(MJ&#xff…...

Qt 设置QLineEdit控件placeholderText颜色

Qt 会根据QLineEdit控件显示文本的颜色自动设置placeholderText颜色,如果想自定义placeholderText颜色,可以通过以下方法。 在样式文件中增加以下设置: QLineEdit#lineEdit_userName, QLineEdit#lineEdit_password{border: none;padding: 6…...

麒麟 V10 系统(arm64/aarch64)离线安装 docker 和 docker-compose

前期准备 查看操作系统版本,跟本文标题核对一下 uname -a查看操作系统架构 uname -m下载离线包 下载 docker 离线包 地址:https://download.docker.com/linux/static/stable/ 选择系统架构对应的文件目录:aarch64,我目前使用…...

Windows基线自动化检查脚本

本批处理脚本的主要目的是对Windows系统进行安全性检查。检查了多个安全参数和设置,以确保系统符合特定的安全标准。当然也可能有些检查项不是很准确,需要根据实际环境再调试一下,以下是该脚本的详细描述和功能分析: 1. 脚本初始…...

离谱的梯形滤波器——增加过渡点

增加过渡点 频率采样法(Frequency Sampling Method)是一种设计FIR滤波器的方法,通过在频域中指定希望的频率响应,然后利用逆离散傅里叶变换(IDFT)来获得滤波器的脉冲响应。然而,这种方法容易导…...

tauri下的两个常用rust web框架:Leptos和Trunk

tauri下有两个常用rust web框架,就是Leptos和Trunk Leptos Leptos 是一个基于 Rust 的 Web 框架。您可以在他们的官方网站上了解更多关于 Leptos 的信息。本指南适用于 Leptos 的 0.6 版本。 Leptos Leptos 是一个用 Rust 编写的现代、高效且安全的 Web 框架。它…...

pubmed关键词搜索技能1:待更新

1,白话变为领域内学术词: 例如,我想要做蛋白质糖基化修饰以功能,这个领域课题,则 第一性原理,首先是拆分词汇:糖基化(一般比蛋白质、修饰、功能要在title中更常见,或者是…...

【技巧】Mac上如何显示键盘和鼠标操作

在制作视频教程时,将键盘和鼠标的操作在屏幕上显示出来,会帮助观众更容易地理解。 推荐Mac上两款开源的小软件。 1. KeyCastr 这款工具从2009年至今一直在更新中。 https://github.com/keycastr/keycastr 安装的话,可以从Github上下载最…...

ISO26262-(Timing Monitoring)在多核MCU的TPU上功能安全ASILB与ASILD有什么区别

在多核微控制器(MCU)的时间保护方面,针对功能安全ASIL B与ASILD等级的设计和实施存在显著差异,这些差异主要体现在系统对时间关键性操作的保障程度、故障检测能力、以及系统响应的严格性上。 ASIL B 级别: 时间关键性:在ASIL B等级,系统设计注重于识别并处理大部分可能…...

图像处理插件:让小程序焕发视觉新生的秘密武器

在小程序开发中,图像处理是一个重要的环节,它涉及到图片的加载、显示、裁剪、压缩等多个方面。为了简化这一复杂过程,开发者通常会使用图像处理插件。这些插件不仅提供了丰富的图像处理功能,还封装了底层的图像操作逻辑&#xff0…...

项目代码第2讲:从0实现LoginController.cs,UsersController.cs、User相关的后端接口对应的前端界面

一、User 1、使用数据注解设置主键和外键 设置主键:在User类的U_uid属性上使用[Key]注解。 设置外键:在Order类中,创建一个表示外键的属性(例如UserU_uid),并使用[ForeignKey]注解指定它引用User类的哪个…...

【linux 查看网卡设备信息命令记录】

查看设备信息命令 查看网卡芯片相关platform类型网卡(gmac网卡为例)PCI网卡(rtl8125为例) 查看网卡芯片相关 platform类型网卡(gmac网卡为例) gmac 属于CPU资源的一部分,属于平台设备。下面以FT2004 的CPU为例,自带GMAC0和GMAC1。 1、通过平台设备查看…...

springboot事务手动回滚报错

捕捉异常之后手动标记回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 没有嵌套事务,还是报Transaction rolled back because it has been marked as rollback-only异常错误 查看错误堆栈,service调用的方法外层还套…...

SQL 算术运算符:加法、减法、乘法、除法和取模的用法

什么是存储过程? 存储过程是一段预先编写好的 SQL 代码,可以保存在数据库中以供反复使用。它允许将一系列 SQL 语句组合成一个逻辑单元,并为其分配一个名称,以便在需要时调用执行。存储过程可以接受参数,使其更加灵活…...

C#是Unity 3D的默认语言,Unity 3D是一种领先的游戏引擎

C#或C-Sharp是一种比C更现代和灵活的编程语言,它也在游戏开发中广受欢迎。C#是Unity 3D的默认语言,Unity 3D是一种领先的游戏引擎,它为各种游戏提供动力,例如《口袋妖怪围棋》、《超级马里奥跑》和《神庙跑》。 Unity 3D也在虚拟…...

[创业之路-173]:《BLM战略规划》- 战略洞察 (战略能力中最最核心的能力) - 市场洞察 -3- 看竞争对手-要比你的竞争对手跟了解他们自己

目录 一、五看三定 二、看竞争 2.1 概述 1、分析竞争对手 2、进行价值链分析 3、紧盯标杆对手 4、关注新进入者和替代产品 5、制定竞争策略 2.2 看竞争的主要内容:背景信息、战略、价值定位、价值链、价值交付、组织架构、财务绩效 1、背景信息 2、战略 …...

Spark实训

实训目的: 介绍本实训的基本内容,描述知识目标、,以及本实训的预期效果等。 1、知识目标 (1)了解spark概念、基础知识、spark处理的全周期,了解spark技术是新时代对人才的新要求。 (2)掌握Linux、hadoop、spark、hive集群环境的搭建、HDFS分布文件系统的基础知识与应用…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

LLMs 系列实操科普(1)

写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

抽象类和接口(全)

一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

算法250609 高精度

加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...

Qt的学习(二)

1. 创建Hello Word 两种方式&#xff0c;实现helloworld&#xff1a; 1.通过图形化的方式&#xff0c;在界面上创建出一个控件&#xff0c;显示helloworld 2.通过纯代码的方式&#xff0c;通过编写代码&#xff0c;在界面上创建控件&#xff0c; 显示hello world&#xff1b; …...

【汇编逆向系列】六、函数调用包含多个参数之多个整型-参数压栈顺序,rcx,rdx,r8,r9寄存器

从本章节开始&#xff0c;进入到函数有多个参数的情况&#xff0c;前面几个章节中介绍了整型和浮点型使用了不同的寄存器在进行函数传参&#xff0c;ECX是整型的第一个参数的寄存器&#xff0c;那么多个参数的情况下函数如何传参&#xff0c;下面展开介绍参数为整型时候的几种情…...