Python中几个重要的集合

Python中几个重要的集合(Collection)类型,包括列表(List)、元组(Tuple)、集合(Set)和字典(Dictionary)

1. 列表(List)

说明

列表是Python中最常用的数据结构之一,它是一个有序的数据集合,可以包含不同类型的元素。列表是可变的,意味着你可以添加、删除或修改列表中的元素。

示例
# 创建一个列表
my_list = [1, 2, 3, 'a', 'b', True]

# 访问列表元素
print(my_list[0])  # 输出: 1

# 列表切片
print(my_list[1:3])  # 输出: [2, 3]

# 修改列表元素
my_list[0] = 'first'
print(my_list)  # 输出: ['first', 2, 3, 'a', 'b', True]

# 添加元素
my_list.append(4)
print(my_list)  # 输出: ['first', 2, 3, 'a', 'b', True, 4]

# 插入元素
my_list.insert(1, 'second')
print(my_list)  # 输出: ['first', 'second', 2, 3, 'a', 'b', True, 4]

# 删除元素
my_list.remove('a')
print(my_list)  # 输出: ['first', 'second', 2, 3, 'b', True, 4]

# 使用pop()删除并返回最后一个元素
last_element = my_list.pop()
print(last_element)  # 输出: 4
print(my_list)  # 输出: ['first', 'second', 2, 3, 'b', True]
使用场景
  • 存储一系列有序的元素,如用户列表、产品列表等。
  • 当你需要频繁地插入、删除或修改元素时。

2. 元组(Tuple)

说明

元组与列表类似,也是一个有序的数据集合,但它是不可变的。一旦创建,就不能更改元组中的元素。元组使用圆括号()定义。

示例
# 创建一个元组
my_tuple = (1, 2, 3, 'a', 'b')

# 访问元组元素
print(my_tuple[0])  # 输出: 1

# 元组切片
print(my_tuple[1:3])  # 输出: (2, 3)

# 尝试修改元组元素(会引发TypeError)
# my_tuple[0] = 'first'  # 这是不允许的

# 创建包含可变元素的元组(但你不能更改这些可变元素在元组中的位置)
mutable_tuple = ([1, 2], 3, 'a')
mutable_tuple[0].append(4)  # 这是允许的,因为列表是可变的
print(mutable_tuple)  # 输出: ([1, 2, 4], 3, 'a')
使用场景
  • 存储不应该被更改的数据,如坐标点、数据库中的记录等。
  • 作为字典的键(因为字典的键必须是不可变的)。

3. 集合(Set)

说明

集合是一个无序的、不包含重复元素的数据集合。集合是可变的,支持添加和删除元素,但不支持通过索引访问元素。集合主要用于数学上的集合操作,如并集、交集、差集和对称差集。

示例
# 创建一个集合
my_set = {1, 2, 3, 3, 'a'}  # 重复元素自动被忽略

# 添加元素
my_set.add(4)
print(my_set)  # 输出: {1, 2, 3, 'a', 4}

# 删除元素
my_set.remove(3)
print(my_set)  # 输出: {1, 2, 'a', 4}

# 使用discard()删除元素(如果元素不存在,不会引发错误)
my_set.discard(5)

# 集合的并集
set1 = {1, 2, 3}
set2 = {2, 3, 4, 5}
union_set = set1.union(set2)
print(union_set)  # 输出: {1, 2, 3, 4, 5}

# 集合的交集
intersection_set = set1.intersection(set2)
print(intersection_set)  # 输出: {2, 3}

# 集合的差集
difference_set = set1.difference(set2)
print(difference_set)  # 输出: {1}

# 集合的对称差集
symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set)  # 输出: {1, 4, 5}
使用场景
  • 去除重复元素。
  • 数学上的集合操作,如求两个集合的并集、交集、差集等。
  • 在不关心元素顺序的场景下,集合提供了比列表更高效的元素检查(成员测试)操作。

4. 字典(Dictionary)

说明

字典是Python中另一个非常强大的数据结构,它存储的是键值对(key-value pairs)的集合。字典是可变的,可以添加、删除或修改键值对。字典的键必须是唯一的,且必须是不可变的(如字符串、数字或元组)。

示例
# 创建一个字典
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}

# 访问字典元素
print(my_dict['name'])  # 输出: John

# 修改字典元素
my_dict['age'] = 31
print(my_dict)  # 输出: {'name': 'John', 'age': 31, 'city': 'New York'}

# 添加新的键值对
my_dict['job'] = 'Engineer'
print(my_dict)  # 输出: {'name': 'John', 'age': 31, 'city': 'New York', 'job': 'Engineer'}

# 删除键值对
del my_dict['city']
print(my_dict)  # 输出: {'name': 'John', 'age': 31, 'job': 'Engineer'}

# 使用pop()删除键值对并返回其值
job = my_dict.pop('job')
print(job)  # 输出: Engineer
print(my_dict)  # 输出: {'name': 'John', 'age': 31}
使用场景
  • 存储需要快速查找的数据,如用户信息、商品信息等。
  • 当数据的每个元素都由两部分组成(如键和值)时。
  • 在需要唯一键的场景下,字典提供了比列表更高效的数据存储和检索方式。

总结

Python中的集合类型(List, Tuple, Set, Dictionary)各自具有独特的特点和使用场景。列表是有序且可变的,适合存储需要经常修改的有序数据;元组是不可变的,适合存储不应该被更改的数据;集合是无序且唯一的,适合进行数学上的集合操作;字典则通过键值对存储数据,提供了高效的数据检索和存储方式。了解并熟练使用这些集合类型,对于编写高效、可读的Python代码至关重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/774608.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker集群部署主从mysql

搭建一个mysql集群,1主2从,使用docker容器 一、创建docker的mysql镜像 下次补上,因为现在很多网络不能直接pull,操作下次补上。 二、创建mysql容器 创建容器1 docker run -it -d --name mysql_1 -p 7001:3306 --net mynet --…

Astro新前端框架首次体验

Astro新前端框架首次体验 1、什么是Astro Astro是一个静态网站生成器的前端框架,它提供了一种新的开发方式和更好的性能体验,帮助开发者更快速地构建现代化的网站和应用程序。 简单来说就是:Astro这个是一个网站生成器,可以直接…

生成式人工智能如何改变软件开发:助手还是取代者?

生成式人工智能如何改变软件开发:助手还是取代者? 生成式人工智能(AIGC)正在引领软件开发领域的技术变革。从代码生成、错误检测到自动化测试,AI工具在提高开发效率的同时,也引发了对开发者职业前景的讨论…

标贝语音识别在智能会议系统的应用案例

语音识别是指将语音信号转换成文本或者其他数字信号形式的过程,随着人工智能在人们日常工作生活中的普及,语音识别技术也被广泛的应用在智能家居、智能会议、智能客服、智能驾驶等领域,以语音识别技术在智能会议系统中的应用为例,…

【读点论文】基于二维伽马函数的光照不均匀图像自适应校正算法

基于二维伽马函数的光照不均匀图像自适应校正算法 摘 要:提出了一种基于二维伽马函数的光照不均匀图像自适应校正算法.利用多尺度高斯函数提取出场景的光照分量,然后构造了一种二维伽马函数,并利用光照分量的分布特性调整二维伽马函数的参数,降低光照过强区域图像的亮度值,提高…

服务器U盘安装Centos 7时提示Warning:/dev/root does not exist

这是没有找到正确的镜像路径导致的,我们可以在命令行输入ls /dev看一下有哪些盘符 像图中红色圈起来的就是我插入U盘的盘符,大家的输几盘可能做了多个逻辑盘,这种情况下就可以先将U盘拔掉再ls /dev看一下和刚才相比少了那两个盘符&#xff0c…

Redis高级篇之最佳实践

Redis高级篇之最佳实践 今日内容 Redis键值设计批处理优化服务端优化集群最佳实践 1、Redis键值设计 1.1、优雅的key结构 Redis的Key虽然可以自定义,但最好遵循下面的几个最佳实践约定: 遵循基本格式:[业务名称]:[数据名]:[id]长度不超过…

空调计费系统是什么,你知道吗

空调计费系统是一种通过对使用空调的时间和能源消耗进行监测和计量来进行费用计算的系统。它广泛应用于各种场所,如家庭、办公室、商场等,为用户提供了方便、准确的能源使用管理和费用控制。 可实现功能 智能计费:中央空调分户计费系统通过智…

光电液位传感器在宠物洗澡机的应用

光电液位传感器在宠物洗澡机中的应用,为洗澡机的智能化管理提供了重要支持和保障。这种先进的传感技术不仅提升了设备的操作便捷性,还大幅度提高了洗澡过程的安全性和效率。 宠物洗澡机作为宠物护理的重要设备,其水位的控制至关重要。光电液…

SD16S1Y 符合GB2312标准16X16点阵汉字库芯片IC

一般概述 SD16S1Y是一款内含16x16点阵的汉字库芯片,支持GB2312国标简体汉字(含有国家信标委 合法授权)、ASCII字符。排列格式为竖置横排。用户通过字符内码,利用本手册提供的方法计算出 该字符点阵在芯片中的地址,可从该地址连续读出字…

STM32/GD32驱动步进电机芯片TM2160

文章目录 官方概要简单介绍整体架构流程 官方概要 TMC2160是一款带SPI接口的大功率步进电机驱动IC。它具有业界最先进的步进电机驱动器,具有简单的步进/方向接口。采用外部晶体管,可实现高动态、高转矩驱动。基于TRINAMICs先进的spreadCycle和stealthCh…

以太网协议介绍——UDP

注:需要先了解一些以太网的背景知识,方便更好理解UDP协议、 以太网基础知识一 以太网基础知识二 UDP协议 UDP即用户数据报协议,是一种面向无连接的传输层协议,属于 TCP/IP 协议簇的一种。UDP具有消耗资源少、通信效率高等优点&a…

第二届计算机、视觉与智能技术国际会议(ICCVIT 2024)

随着科技的飞速发展,计算机、视觉与智能技术已成为推动现代社会进步的重要力量。为了汇聚全球顶尖专家学者,共同探讨这一领域的最新研究成果和前沿技术,第二届计算机、视觉与智能技术国际会议(ICCVIT 2024)将于2024年1…

从海上长城到数字防线:视频技术在海域边防现代化中的创新应用

随着全球化和科技发展的加速,海域安全问题日益凸显其重要性。海域边防作为国家安全的第一道防线,其监控和管理面临着诸多挑战。近年来,视频技术的快速发展为海域边防场景提供了新的解决方案,其高效、实时、远程的监控特点极大地提…

【稳定检索/投稿优惠】2024年教育、人文发展与艺术国际会议(EHDA 2024)

2024 International Conference on Education, Humanities Development and Arts 2024年教育、人文发展与艺术国际会议 【会议信息】 会议简称:EHDA 2024 大会时间:点击查看 截稿时间:点击查看 大会地点:中国北京 会议官网&#…

云微客短视频矩阵全域营销,更高效的获客引流方式!

在抖音这样一个拥有海量用户和内容的短视频平台上,单一账号往往难以覆盖我们的客户群体,甚至于每天发布四五条视频,所引发的流量也是微乎其微的。在竞争如此激烈的市场环境中,商家企业无不想方设法追求更高效的获客引流方式&#…

【selenium 】操作元素

操作元素 元素操作鼠标操作键盘操作 元素操作 元素操作示例清空输入框clear()deiver.find_element_by_id(“username”).clear()输入文字send_keys()deiver.find_element_by_id(“username”).send_keys(‘zs’)元素点击 click()deiver.find_element_by_id(“login”).click()…

【ARM系列】1 of N SPI

1 of N模式 SPI 概述配置流程 概述 GIC-600AE支持1 of N模式SPI。在此模式下可以将SPI target到多个core,并且GIC-600AE可以选择哪些内核接收SPI。 GIC-600AE只向处于powered up 并且使能中断组的core发送SPI。 GIC-600AE会优先考虑那些被认为是active的核&#xf…

ORB-SLAM3源码分析(案例分析)

一、ORB-SLAM3简介 ORB-SLAM3 (Oriented FAST and Rotated BRIEF SLAM 3) 是一种视觉SLAM(Simultaneous Localization and Mapping,同时定位与地图构建)系统,用于机器人和计算机视觉领域。它是ORB-SLAM系列的第三个版本&#xff…

Pandas 入门 15 题

Pandas 入门 15 题 1. 相关知识点1.1 修改DataFrame列名1.2 获取行列数1.3 显示前n行1.4 条件数据选取值1.5 创建新列1.6 删去重复的行1.7 删除空值的数据1.9 修改列名1.10 修改数据类型1.11 填充缺失值1.12 数据上下合并1.13 pivot_table透视表的使用1.14 melt透视表的使用1.1…