Python列表、字典、元组、集合

article/2025/7/4 2:38:43

列表 list

基本格式:列表名 = [元素1,元素2,元素3]

所有元素放在[ ]之中,元素之间用逗号","隔开,元素可以是不同的类型

列表的类型也是列表

li = [1,"hello",2]
print(type(li))

列表是可迭代对象,可以用for循环进行遍历 

li = [1,"hello",2]
for i in li:print(i)

列表常见操作

增加

常见三种增加元素方式:append(),extend(),insert()

append() 整体添加元素

li = ["one","two","three"]
li.append("four")
print(li) 

extend() 分散添加

li = ["one","two","three"]
li.extend("four")
print(li) 

insert() 在指定位置插入元素

li = ["one","two","three"]
li.insert(3,"four")  #3为指定插入位置下标
print(li) 

 

 删除

del

li = ["a","b","c","d"]
#del li #删除整个列表
del li[2] #根据下标删除

pop

删除指定下标的数据,如果未指定下标则移除列表的最后一个元素,如果列表为空或者超出列表索引范围则会引发IndexError

li = ["a","b","c","d"]
li.pop() #删除列表最后一个元素
li.pop(2) #指定位置删除

remove

删除指定的值,默认删除最开始出现指定的值,当列表中值不存在时触发ValueError异常

li = ["a","b","c","d","b"]
li.remove("b") # ['a','c','d','b']
li.remove("e") #报错

排序

sort

将列表按特定顺序重新排列,默认从小到大

li = ['a','c','b','d','e']
li.sort()

 reverse :将列表反转,顺序改变

li = ['a','c','b','d','e']
li.reverse()

 

元组 tuple

元组是由多个逗号隔开的值组成的,例

t = ('q',"qwe",1)
print(t)  #('q',"qwe",1)

输出时,元组都要由圆括号标注,这样才能正确地解释嵌套元组。输入时,圆括号可有可无,不过经常是必须的(如果元组是更大的表达式的一部分)。

t = 'q',"qwe",1
print(t)  #('q',"qwe",1)

元组是不可变的,不能对他进行增删查改等操作

t = 'q',"qwe",1
t[0] = 'a'

当我们运行上述代码的时候,会发生报错,元组值不支持更改 

当我们构造0个或1个元素的元组比较特殊,使用一对空圆括号可以直接构成空元组,只有一个元素的元组可以通过在这个元素后面添加逗号","来构建,不使用逗号,则返回唯一的值得数据类型是str类型。

空元组

t =()
print(type(t))

 

使用逗号构建

q = ('a',)
print(type(q))

 

不使用逗号构建

q = ('a')
print(type(q))

字典 dict

字典是键值对的结合,每一个键值对之间使用逗号","隔开,键和值之间用:隔开。字典的键具有唯一性。

基本语法格式:字典名 = {键1:值1,键2:值2....}

dic = {"name":"you","name":18} #键名重复,后面的值会将前面的值覆盖
print(dic) 

 

字典常见操作

查看元素

字典不支持使用下标查找元素,查找元素需要根据键名

dic = {"name":"you","age":18}
print(dic["age"]) #18

也可以使用内置函数来查找,字典名.get(键名),键名不存在则返回None,也可以返回自己设置的默认值。

dic = {"name":"you","age":18}
print(dic.get("name")) #you
print(dic.get("sex","不存在")) #返回自己设置的值不存在

 修改元素

通过键名修改元素,例

dic = {"name":"you","age":18}
dic["age"] = 20
print(dic) #{'name': 'you', 'age': 20}

添加元素

字典名[键名] = 值

键名存在就是修改元素,不存在就是添加元素

dic = {"name":"you","age":18}
dic["sex"] = "boy"
print(dic) #{'name': 'you', 'age': 18, 'sex': 'boy'}

删除元素

del 字典名   删除整个字典

dic = {'name': 'you', 'age': 18, 'sex': 'boy'}
del dic
print(dic) #NameError: name 'dic' is not defined.

del 字典名[键名]  删除指定键值对

dic = {'name': 'you', 'age': 18, 'sex': 'boy'}
del dic['age']
print(dic) #{'name': 'you', 'sex': 'boy'}

字典内置函数clear(),清除整个字典包含的东西,但字典依然存在

dic = {'name': 'you', 'age': 18, 'sex': 'boy'}
dic.clear()
print(dic) #空字典{}

pop() ,删除指定键值对

dic = {'name': 'you', 'age': 18, 'sex': 'boy'}
dic.pop("name")
print(dic) #{'age': 18, 'sex': 'boy'}

 集合 set

集合是由不重复元素组成的无序容器,基本用法包括成员检测、消除重复元素。

创建集合用花括号或 set() 函数。注意,创建空集合只能用 set(),不能用 {}{} 创建的是空字典。

集合具有无序性,主要实现方式为hash表,每次运行结果不同,hash值不同,那么在hash表中的位置也不同,python中int在hash表中的值就是它本身。

s = {1,2,'q','a','c','w'}
print(s)

 

 

 

 

 

 

 

 

 

 


http://www.hkcw.cn/article/iBwPkDXJnd.shtml

相关文章

sctpscan:用于发现 SCTP 网络扫描器!全参数详细教程!Kali Linux教程!

简介 用于发现和安全的 SCTP 网络扫描器 sctpscan 是一款 SCTP 协议端口扫描工具,主要用于识别目标主机上开放的 SCTP(Stream Control Transmission Protocol)服务端口。 sctpscan 的主要功能是: 探测目标主机 SCTP 协议是否开…

力扣题解654:最大二叉树

一、题目内容 题目要求根据一个不重复的整数数组 nums 构建最大二叉树。最大二叉树的构建规则如下: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值左边的子数组前缀上构建左子树。递归地在最大值右边的子数组后缀上构建右子树。返回由 nums 构…

车载诊断架构 --- DTC消抖参数(Trip Counter DTCConfirmLimit )

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

75.解决当编辑完用户消息,确认重新生成AI回答时,已有的AI回答还是存在,并且新生成的回答并没有显示到气泡里bug

在上一个bug解决完后,又出来一个bug,我真是服了哈哈哈 新的bug是: 当编辑完用户消息,确认重新生成AI回答时,已有的AI回答还是存在,并且新生成的回答并没有显示到气泡里 出现这个bug的原因还是出现在rege…

C# 用户控件(User Control)详解:创建、使用与最佳实践

在C#应用程序开发中,用户控件(User Control)是一种强大的工具,它允许开发者将多个标准控件组合成一个可复用的自定义组件。无论是Windows Forms还是WPF,用户控件都能显著提高UI开发的效率,减少重复代码&…

SpringBoot-配置Spring MVC

一、Spring MVC回顾 Spring MVC是一种常用的Java Web框架,它提供了一种基于MVC模式的开发方式,可以方便地实现Web应用程序。在Spring MVC中,WebMvcConfigurer是一种常用的配置方式,可以允许我们自定义Spring MVC的行为&#xff0c…

Python训练营打卡 Day26

知识点回顾: 函数的定义变量作用域:局部变量和全局变量函数的参数类型:位置参数、默认参数、不定参数传递参数的手段:关键词参数传递参数的顺序:同时出现三种参数类型时 ——————————————————————…

【Delphi】接收windows文件夹中文件拖拽

本文根据EmailX45的视频文件,进行了优化改进,原文参见:Delphi: Drag and Drop Files from Explorer into TPanel / TMemo - YouTube 在Windows中,如果将选择的文件拖动到Delphi程序的控件上,有很多实现方法&#xff0c…

电脑的ip地址会自动变怎么办?原因解析和解决方法

在当今互联网时代,IP地址是每台联网设备的"身份证",但很多用户都遇到过IP地址自动变化的情况。这种现象既可能发生在内网(局域网)环境中,也可能出现在外网(公网)连接中。要理解IP地址…

CppCon 2014 学习: C++11 in the Wild

介绍了三个现代 C 的实用工具或功能。下面是对每部分的解释和总结: 1. Auto() 宏 用途:在作用域结束时自动执行清理代码,类似于 RAII 的机制。功能:你可以定义一段代码,在作用域结束时自动执行(不需要手动…

三大模块曝光:分钟级搭建专属平台,解锁算力灵活操控新体验,重新定义智能开发效率天花板

一. 蓝耘元生代 MaaS介绍及简单使用 背景介绍 创新产品定位: 蓝耘元生代 MaaS 平台于 2024 年 11 月 28 日推出,非传统智算平台,以资源聚合能力整合上下游资源,为用户提供优质全面服务。 核心模块功能: 集成智算算…

乾坤qiankun的使用

vue2 为主应用 react 为子应用 在项目中安装乾坤 yarn add qiankun # 或者 npm i qiankun -Svue主应用 在main.js中新增 (需要注意的是路由模型为history模式) registerMicroApps([{name: reactApp,entry: //localhost:3011,container: #container,/…

FreeRTOS实时操作系统学习笔记

一 RTOS入门 1.1 裸机与RTOS介绍(了解) 裸机编程是指在嵌入式系统中,直接在硬件上运行代码,没有操作系统的支持。这种方式下,开发者需要完全掌握硬件资源,包括时钟、中断、外设等。任务调度和资源管理都由…

MCP还是A2A?AI未来技术选型深度对比分析报告

引言 MCP(Multi-Core Processor)与A2A(Asynchronous to Asynchronous)分别代表了计算架构发展中的两种重要范式。前者延续传统冯诺依曼体系的并行优化路径,后者则试图突破同步时钟的物理限制。理解二者的本质差异&…

逐步检索增强推理的跨知识库路由学习

摘要 多模态检索增强生成(MRAG)在多模态大语言模型(MLLM)中通过在生成过程中结合外部知识来减轻幻觉的发生,已经显示出了良好的前景。现有的MRAG方法通常采用静态检索流水线,该流水线从多个知识库&#xff…

OpenRouter使用指南

OpenRouter 是一个专注于大模型(LLM)API 聚合和路由的服务平台,旨在帮助开发者便捷地访问多种主流大语言模型(如 GPT-4、Claude、Llama 等),并提供统一的接口、成本优化和智能路由功能。以下是它的核心功能…

【Linux】权限chmod命令+Linux终端常用快捷键

目录 linux中权限表示形式 解析标识符 权限的数字序号 添加权限命令chmod 使用数字表示法设置权限 使用符号表示法设置权限 linux终端常用快捷键 🔥个人主页 🔥 😈所属专栏😈 在 Linux 系统里,权限管理是保障系…

2018ToG | 可逆的灰度图像

写在前面:这篇论文是比较早期的论文了,但由于本人是第一次见到该方向的相关研究,所以觉得比较新奇。本文用以梳理这篇论文的阅读思路,文末附上了一些个人思考。 0. Abstract 一旦彩色图像被转换为灰度图像,普遍认为即…

Python打卡训练营Day43

DAY 43 复习日 作业: kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 数据集地址:Lung Nodule Malignancy 肺结核良恶性判断 进阶:并拆分成多个文件 import os import pandas as pd import numpy as np from…

mem0ai/mem0 v0.1.102版本全面升级,解锁多项前沿功能与文档优化!

大家好!今天我们为大家带来mem0ai/mem0项目的重大版本更新——v0.1.102!本次更新不仅带来了全新的功能扩展,更对项目的文档体系进行了深度优化,提升了整体用户体验和集成便捷性。无论你是mem0ai/mem0的忠实用户,还是刚…