学习python仅收藏此一篇就够了(集合,字典)

集合

集合的定义:

变量名称 = {元素,元素}

变量名称 = set()

首先,因为集合是无序的,所以集合不支持,下标索引访问。

但是集合和列表一样,是允许修改的。

#定义一个集合
my_set = {"python", "java", "go", "php", "shell"}
empty = set()
集合的特点:
  • 可以容纳多个数据

  • 可以容纳不同类型的数据

  • 数据是无序存储的

  • 不允许重复数据存在

  • 可以修改

  • 支持for循环

集合的操作
  • 添加新元素

语法:集合.add(元素)

结果:集合本身被修改,添加了新元素

my_set = {"python", "java", "go", "php", "shell"}
my_set.add("c")
print(my_set) #{'python', 'c', 'shell', 'php', 'go', 'java'}
  • 移除元素

语法:集合.remove(元素) ,将指定元素,从集合内移除

my_set.remove("python")
print(my_set) #{'java', 'c', 'shell', 'go', 'php'}
  • 从集合中随机取出元素

语法:集合.pop(),从集合中随机取出一个元素

my_set.pop()
print(my_set) #{'java', 'go', 'c', 'php'}
  • 清空集合

语法:集合.clear(),功能,清空集合

my_set.clear()
print(my_set)
  • 取出2个集合的差集

语法:集合1.difference(集合2),功能:取出集合1和集合2的差集,集合1有集合2没有,得到一个新的集合,集合1和集合2不变。

set1 = {1,2,3}
set2 = {1,4,5}
set3 = set1.difference(set2)
print(set3) #{2, 3}
  • 消除2个集合的差集

语法:集合1.difference_upate(集合2)

功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素

结果:集合1被修改,集合2不变

set1.difference_update(set2)
print(set1) #{2, 3}
print(set2) #{1, 4, 5}
  • 2个集合合并为一个

语法:集合1.union(集合2)

功能:将集合1和集合2组合成新集合

set1 = {1,2,3}
set2 = {1,4,5}
set4 = set1.union(set2)
print(set4) #{1, 2, 3, 4, 5}
  • 统计集合元素的数量
print(len(set1))
print(len(set2))
print(len(set4))
集合的遍历

集合不支持下标索引,不能使用while循环

for i in set4:print(i)

字典

字典的特点
  • 可以容纳多个数据

  • 可以容纳不同类型的数据

  • 每一份数据是keyvalue键值对

  • 可以通过key获取到value,key不可重复

  • 不支持下标索引

  • 可以修改

  • 支持for循环,不支持while循环

字典的定义

同样使用{},不过存储的元素是一个个的:键值对

#定义字典
dict = {"wyx": 99, "sxx": 60, "第三者": 100}
dict2 = {}#从字典中基于key获取value
s = dict["wyx"]
print(s) #99#定义嵌套字典
stu_dict = {"wyx":{"语文":80,"数学":90,"英语":88},"sxx":{"语文": 23,"数学": 44,"英语": 55}
}
print(stu_dict)
#{'wyx': {'语文': 80, '数学': 90, '英语': 88}, 'sxx': {'语文': 23, '数学': 44, '英语': 55}}
stus = stu_dict["sxx"]["语文"]
print(stus) #23
字典的常用操作
  • 新增元素

语法:字典[key] = value,结果:字典被修改,新增了元素

dict = {"wyx": 99, "sxx": 60}
dict["py"] = 88
print(dict) #{'wyx': 99, 'sxx': 60, 'py': 88}
  • 更新元素

语法:字典[key] = value, 结果:字典被修改,元素被更新

#{'wyx': 99, 'sxx': 60, 'py': 88}
dict["py"] = 77
print(dict) #{'wyx': 99, 'sxx': 60, 'py': 77}
  • 删除方法

语法:字典.pop(key), 结果:获得指定key的value,同时字典被修改,指定key的数据被删除

dict = {"wyx": 99, "sxx": 60}
value = dict.pop("wyx")
print(value) #99
print(dict) #{'sxx': 60}
  • 清空元素

语法:字典.clear(),结果:字典被修改,元素被清空

dict = {"wyx": 99, "sxx": 60}
dict.clear()
print(dict)
  • 获取全部key

语法:字典.keys(), 结果:得到字典中全部的key

dict = {"wyx": 99, "sxx": 60}
keys = dict.keys()
print(keys) #dict_keys(['wyx', 'sxx'])
字典的遍历
for循环遍历
dict = {"wyx": 99, "sxx": 60}
keys = dict.keys()
print(keys) #dict_keys(['wyx', 'sxx'])for key in keys:print(f"字典的key是{key}")print(f"字典的value是{dict[key]}")
#字典的key是wyx
字典的value是99
字典的key是sxx
字典的value是60
for key in dict:print(key)print(dict[key])
#wyx
99
sxx
60

数据容器的总结对比

数据容器的分类

  • 是否支持下标索引

  1. 支持:列表,元组,字符串-序列类型

  2. 不支持:集合,字典-非序列类型

  • 是否支持重复元素

  1. 支持:列表,元组,字符串-序列类型

  2. 不支持:集合,字典-非序列类型

  • 是否可以修改

  1. 支持:列表,集合,字典

  2. 不支持:元组,字符串

应用场景分析·

  • 列表:一批数据,可修改,可重复的存储场景

  • 元组:一批数据,不可修改,可重复的存储场景

  • 字符串:一串字符串的存储场景

  • 集合:一批数据,去重存储场景

  • 字典:一批数据,可用key检索value的存储场景

容器的排序功能

语法:sorted(容器,[reverse=true])

dict = {"wyx": 99, "sxx": 60}
print(sorted(dict)) #['sxx', 'wyx']
print(sorted(dict,reverse=True)) #将结果反转['wyx', 'sxx']

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

经管类CSSCI、北核期刊投稿指南数据(2023年更新)/经管类的期刊投稿指南

经管类CSSCI、北核期刊投稿指南(2023年更新) 1、内容包括:投稿指南-CSSCI版本、CSSCI扩展版本、北大核刊版本、建议期刊版本、所有期刊。 2、范围:CSSCI、CSSCI扩展、北大核刊 3、说明:包含经管类期刊的发表难度&am…

【LeetCode】2626. 数组归约运算

数组归约运算 题目题解 题目 给定一个整数数组 nums、一个 reducer 函数 fn 和一个初始值 init,返回通过依次对数组的每个元素执行 fn 函数得到的最终结果。 通过以下操作实现这个结果:val fn(init, nums[0]),val fn(val, nums[1])&#…

1. Presto基础

该笔记来源于网络,仅用于搜索学习,不保证所有内容正确。文章目录 一、presto基础操作二、时间函数0、当前日期/当前时间1、转时间戳1)字符串转时间戳 (推荐)2)按照format指定的格式,将字符串str…

AlexNet论文翻译与精读

1:该论文解决了什么问题? 图像分类问题 2:该论文的创新点? 1:使用了大的深的卷积神经网络进行图像分类; 2:采用了两块GPU进行分布式训练; 3:采用了Relu进行训练加速; 4:采用局部归一化提高模型泛化能…

Mac iTerm2 配置

Mac iTerm2 配置 安装 brew install iTerm2安装完成之后,需要重新打开终端,既可以看见安装 iTerm2 的效果。 iTerm2 美化 使用 oh-my-zsh 美化 iTerm2 终端 安装 brew install wget sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/mast…

Laravel使用Kafka实践教程(从安装到使用0-1)

一、Linux安装Kafka 首先Linux服务器需要安装好Kafka,这里不再具体细说,可以看我前面的文章:Linux搭建Kafka详细一步一步指南(linux启动kafka脚本)-CSDN博客 二、Laravel安装Kafka composer require enqueue/rdkafka:0.10.18注意:版本号一…

Qt 窗口阴影边框

环境:Qt 5.15 VS2019 方法一:QGraphicsDropShadowEffect 实现方法参考链接:https://blog.csdn.net/goforwardtostep/article/details/99549750 使用此方法添加窗口阴影,会出现警告信息: 且窗口最大化与还原切换时会…

多态、抽象类和接口(深拷贝和浅拷贝)

目录​​​​​​​ 前言: 多态: 多态的定义: 向上转型: 方法重写: 再看toString方法: 动态绑定: 向下转型: 小练习: 抽象类: 什么是抽象类&am…

Logstash应用-同步ES(elasticsearch)到HDFS

1.场景分析 现有需求需要将elasticsearch的备份至hdfs存储,根据以上需求,使用logstash按照天级别进行数据的同步 2.重难点 数据采集存在时间漂移问题,数据保存时使用的是采集时间而不是数据生成时间采用webhdfs无法对文件大小进行设置解决…

水产冷链物流行业零下25℃库架一体 海格里斯HEGERLS四向穿梭式冷藏冷库智能密集仓

随着国内外仓储物流整体规模和低温产品消费需求的稳步增长,冷链市场应用潜力不断释放。在传统“货架叉车”的方式下,货物、人员及机械设备不断进出,容易造成温度波动,导致冷量流失。立体冷库则以更高密度、更具成本效益的方式&…

性能测试中TPS上不去的几种原因浅析

昨晚在某个测试群看到有人问了一个问题:压力测试中TPS一直上不去,是什么原因?稍微整理了下思路,列举性的简略回答了他的问题。 这篇博客,就具体说说在实际压力测试中,为什么有时候TPS上不去的原因。如有遗…

C++学习笔记(三十五):c++ 函数指针及lambda表达式

本节介绍c函数指针。在一些源码中经常能看到c函数指针,但之前一直觉着这一块比较复杂,就一直没去仔细研究,终于有时间去仔细研究这一块内容了。 c风格的函数指针 函数指针是指将一个函数赋值给一个变量的方法,可以将函数作为一个参…

Vercel配置自定义域名

首先你需要有一个域名 1.点击部署的项目设置 2.找到Domains 3.输入自己的域名 点击添加之后按要求去域名服务商添加解析即可 4.显示下面内容就设置完成了,

Ubuntu下wifi 无线网络的配置

先说结论:终端模式下没有找到无脑安装的方法,也就是需要修改配置文件。 首先安装相关库 sudo apt install network-manager wpasupplicant wireless-tools然后到/etc/netplan目录下,配置50-cloud-init.yaml文件。如果没有这个文件&#xff0…

激活/注册navicat15

一、获取软件 链接:https://pan.baidu.com/s/1F_tiLuLvVFMEz8pDfIvDjw?pwdjjfj 提取码:jjfj 二、安装 安装的过程我就不放了,重点如下 安装完不要打开软件! 安装完不要打开软件! 安装完不要打开软件!…

强化学习求解TSP(三):Qlearning求解旅行商问题TSP(提供Python代码)

一、Qlearning简介 Q-learning是一种强化学习算法,用于解决基于奖励的决策问题。它是一种无模型的学习方法,通过与环境的交互来学习最优策略。Q-learning的核心思想是通过学习一个Q值函数来指导决策,该函数表示在给定状态下采取某个动作所获…

【响应式编程】前置知识和相关技术的总结

前置知识 这些概念都与响应式编程密切相关。🦌 1. 并发和多线程编程:响应式编程需要处理并发性,它允许多个操作独立地并行执行。这使得应用程序可以在不同的线程、进程或设备上处理多个事件。 2. 事件驱动编程:响应式编程是一种…

回首24考研历程,那些无法忘却的收获

文章目录 毅力与坚持👍知识的力量🧐心态的历练🤓友谊与互助( •̀ ω •́ )y未来的启示(●◡●) 在这个充满希望与挑战的时刻,我想与你们分享一段关于2023这一年特别的经历——考研之路。这段旅程既有磨砺的痛楚,也有…

小程序基础学习(事件处理)

概述&#xff1a;点击某一个标题&#xff0c;使标题选中增加不同颜色。 <!--pages/four/four.wxml--> <navigation-bar title"牧原" back"{{false}}" color"black" background"#FFF"></navigation-bar> <view c…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷⑩

2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷10 目录 需要竞赛软件包环境以及备赛资源可私信博主&#xff01;&#xff01;&#xff01; 2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷10 模块…