Python基础(三)—字典和集合

笔记:Python 字典和集合(练习题) 欢迎来到 Python 字典和集合练习题集!本系列练习旨在帮助您巩固和加深对 Python 字典和集合的理解。字典和集合是 Python 中极为重要且灵活的数据结构,它们在各种场景下都有着广泛的应用,从数据管理到算法实现都离不开它们的支持。通过完成这些练习,您将有机会探索 Python 字典和集合的各种用法,包括创建、访问、更新和删除元素,以及利用它们进行数据处理和算法设计的技巧。 阅读详情

字典Dictionary

字典是一种可变容器模型,且可存储任意类型对象。每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

   d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

  • 创建:d = {key1 : value1, key2 : value2 }
  • 访问:dict[‘Age’],当不存在会报错:KeyError: ‘Age’
  • 修改:dict[‘Age’] = 8 # 修改信息
  • 删除
    • pop(key[,default]) <根据key来删除>
    • popitem() <随机删除>
    • dict.clear() # 清空字典
    • del dict[‘Name’] # 删除键 ‘Name’

循环遍历

  • 遍历字典的key

      for key in dict:
        print(key)
    
      for key in dict.keys():
        print(key)
    
  • 遍历字典的value

      # 字典中的key之后就可以直接通过索引来得到相对应的value
      for key in dict.keys():
          print(dict[key])
    
      # 通过dict.values()来直接遍历索引
      for key in dict.keys():
          print(key)
    
  • 遍历字典的项

      # 通过dict.item()返回的元组数列可以遍历整个结果,每个数据项是一个元组。
      for item in dict.items():
      	print(item)
    
      # 对items进行key和value的遍历。
      for key, value in dict.items():
      	print(key, value)
    

字典排序

对生成的字典的结果按照key或者value进行排序,主要用到的方法就是python的内置函数sorted()。sorted()函数的作用是对所有可迭代的对象进行排序操作的函数。

	sorted(iterable, cmp=None, key=None, reverse=False) 
	"""
  	iterable:是可迭代的数据类型。
  	cmp:是用于比较的函数,将key指定的关键字通过该函数规定的比较规则进行比较。有点类似java中的Comparable抽象类中的compareTo()方法。传递两个参数,例如f(a,b),指定a和b的逻辑比较规则,结果返回正数、负数或者零来分别表示大于、小于和等于。
  	key:用于进行比较的数据。
  	reverse:排序规则,默认是True降序,或者设置为False来升序。
    """
  • 按照key值进行排序

    • 当iterable传入的dict时,dict返回的是对key迭代,所以得到的排序结果也是对key排序后的列表。
        sorted_dict = sorted(dict, key=lambda x:x[0])
        print(sorted_dict)
      
        # ['LiSi', 'WangWu', 'ZhangSan', 'ZhaoLiu']
      
    • 如果传入的是dict.items(),此时传入的是元组,所以排序后返回的结果也是元组的列表。
      sorted_dict = sorted(dict.items(), key=lambda x:x[0])
      print(sorted_dict)
    
      # [('LiSi', 10), ('WangWu', 5), ('ZhangSan', 2), ('ZhaoLiu', 4)]
    
  • 按照value值进行排序
    按照value排序时,只需把key迭代对象选择为x[1]就可以了。

        sorted_dict = sorted(dict.items(), key=lambda x:x[1], reverse=True)
        print(sorted_dict)
    
        # [('LiSi', 10), ('WangWu', 5), ('ZhaoLiu', 4), ('ZhangSan', 2)]
        """
        lambda匿名函数的作用类似:
        def f(x):
        	return x[1]
        """
    

字典API

  • Python字典包含了以下内置函数
序号函数描述
1len(dict)计算字典元素个数,即键的总数。
2str(dict)输出字典,以可打印的字符串表示。
3type(variable)返回输入的变量类型,如果变量是字典就返回字典类型。
  • Python字典包含了以下内置方法
序号函数描述
1popitem()随机返回并删除字典中的一对键和值(一般删除末尾对)。
2pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
3radiansdict.clear()删除字典内所有元素
4radiansdict.copy()返回一个字典的浅复制
5radiansdict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
6radiansdict.get(key, default=None)返回指定键的值,如果值不在字典中返回default值
7key in dict如果键在字典dict里返回true,否则返回false
8radiansdict.items()以列表返回可遍历的(键, 值) 元组数组
9radiansdict.keys()返回一个迭代器,可以使用 list() 来转换为列表
10radiansdict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
11radiansdict.update(dict2)把字典dict2的键/值对更新到dict里
12radiansdict.values()返回一个迭代器,可以使用 list() 来转换为列表

集合set

集合(set)是一个无序的不重复元素序列。(可以用作去重)

  • 创建:
    一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

      parame = {value01,value02,...}
      或者
      set(value
      # 去重
      basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
      print(basket) # 这里演示的是去重功能
      # {'orange', 'banana', 'pear', 'apple'}
    
  • 添加:

    s.add( x ),如果x存在则不做操作。
    s.update( x ),参数可以是列表,元组,字典等。

      tmpset = set('123')
      tmp = ['aa', 'bb']
      # tmpset.add(listtmp)  # 报错TypeError: unhashable type: 'list'
      tmpset.update(tmp)  # 不报错,添加列表时,所有item均添加
      print(tmpset)  # 每次输出结果均不一致
    
      tmp = ('cc', 'dd')
      tmpset.update(tmp)  # 添加元组时,所有item均添加
      print(tmpset)  # 每次输出结果均不一致
    
      tmp = {4: 'ee', 5: 'ff'}
      tmpset.update(tmp)  # 添加元组时,所有键值添加、item不添加
      print(tmpset)  # 每次输出结果均不一致
    
      """
      	{'3', 'aa', '2', 'bb', '1'}
      	{'3', 'aa', 'cc', '2', 'bb', '1', 'dd'}
      	{'3', 'aa', 'cc', 4, 5, '2', 'bb', '1', 'dd'}
      """
    
  • 移除:

    s.remove( x ),将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
    s.discard( x ),移除集合中的元素,且如果元素不存在,不会发生错误。
    s.pop() ,随机删除集合中的一个元素。在交互模式下,pop 是删除集合的第一个元素(排序后的集合的第一个元素)。

      >>>thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
      >>> thisset.pop()
      'Facebook'
      >>> print(thisset) 
      {'Google', 'Taobao', 'Runoob'}
    

    s.clear(),清空集合。

  • 集合的运算

    • 交差并
      >>> a = set('abracadabra')
      >>> b = set('alacazam')
      >>> a
      {'a', 'r', 'b', 'c', 'd'}
      >>> a - b # 集合a中包含而集合b中不包含的元素
      {'r', 'd', 'b'}
      >>> a | b # 集合a或b中包含的所有元素
      {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
      >>> a & b # 集合a和b中都包含了的元素
      {'a', 'c'}
      >>> a ^ b # 不同时包含于a和b的元素
      {'r', 'd', 'b', 'm', 'z', 'l'}
    
    • 列表推导
      >>>a = {x for x in 'abracadabra' if x not in 'abc'}
      >>> a
      {'r', 'd'}
    
  • 查询
    x in s

内置方法

集合内置方法完整列表

序号方法描述
1add()为集合添加元素
2update()为集合添加元素,不报错,可以添加列表、元组、字典等
3clear()移除集合中的所有元素
4copy()拷贝一个集合
5pop()随机移除元素
6remove()移除指定元素
7difference()返回多个集合的差集
8difference_update()移除集合中的元素,该元素在指定的集合也存在。
9discard()删除集合中指定的元素
10intersection()返回集合的交集
11intersection_update()删除集合中的元素,该元素在指定的集合中不存在。
12isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
13issubset()判断指定集合是否为该方法参数集合的子集。
14issuperset()判断该方法的参数集合是否为指定集合的子集
15symmetric_difference()返回两个集合中不重复的元素集合。
16symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
17union()返回两个集合的并集

个人博客:Loak 正 - 关注人工智能及互联网的个人博客
文章地址:Python基础(三)—字典和集合

python基础练习题(三)---列表、字典、元组、集合 一、单选题 1.阅读下面一段示例程序: demo_list = [] demo_list.append(“A”,“B”) print(demo_list) 运行程序,其最终执行的结果为(6.0分) A、[‘A’] B、[‘A’, ‘B’] C、[‘B’, ‘A’] D、程序出现TypeError异常 append(x):将参数中的数组作为一个元素添加 extend(x,y,z):将参数中的数组作为多个元素添加 2.请看下面的一段程序: info = {1:‘小明’, 2:‘小黄’,3:‘小兰’} name 阅读详情

相关推荐

Python基础——元组,字典,集合

文章目录元组一. 元组的应用场景二. 定义元组三. 元组的常见操作字典一. 字典的应用场景二. 创建字典的语法三. 字典常见操作3.1 增3.2 删3.3 改3.4 查3.4.1 key值查找3.4.2 get()3.4.3 keys()3.4.4 values()3.4.5 items()四. 字典的循环遍历4.1 遍历字典的key4.2 遍历字典的value4.3 遍历字典的元素4.4 遍历字典的键值对集合一. 创建集合特点:(set)二. 集合常见操作方法2.1 增加数据2.2 删除数据2.3 查找

流楚丶格念的博客 4573

python报KeyError: ('Age', 'occurred at index PassengerId')错误

在使用pandas自定义函数: def is_minor(row): if row[‘Age’]&lt;18: return True else: return False minors=titanic_survival.apply(is_minor) print(minors) 出现: KeyError: (‘Age’, ‘occurred at index PassengerId’)错误 解决...

weixin_44574186的博客 1万+

01第七章集合与字典作业(基础)

任务描述集合是一个无序的、没有重复元素的数据类型,在输出或转为序列类型时,其元素位置随机出现。

Junds0的博客 791

第七章集合与字典作业

第七章集合与字典作业 1.字符串去重排序;2.列表去重;第3关猜年龄;第4关集合的属性、方法与运算;第5关集合介绍;第6关手机销售统计;第7关集合添加元素;第8关列表嵌套字典的排序;第9关绩点计算;第10关通讯录(MOD);第11关字典增加元素;第12关字典的属性、方法与应用;第13关查询省会;第14关英汉词典;第15关通讯录(添加)

m0_70456205的博客 2万+

python实验三、字典和集合 .doc

一、实验目的和要求 (1) 掌握字典的创建方法 (2) 掌握字典元素的访问方法 (3) 掌握字典的基本操作 (4) 掌握集合的创建方法 (5) 掌握集合的基本运算 二、实验题目 1.学生基本信息如下表,请编写程序分别统计男、女生的人数,并查找所有年龄超过18岁的学生的姓名 姓名 性别 年龄 张三 男 19 李四 女 18 王五 男 18 赵六 女 20 徐伟伟 女 19 韩亮亮 女 19 【提示】 (1)信息表中每一行存储的是和姓名有关的个人信息,可以考虑用字典存储。其中姓名作为键,性别和年龄可以以元组的形式作为值。然后通过字典的遍历完成统计和查询。 如dicStus={&#39;张三&#39;:(&#39;男&#39;,19),&#39;李四&#39;:(&#39;女&#39;,18),&#39;王五&#39;:(&#39;男&#39;,18), &#39;赵六&#39;:(&#39;女&#39;,20),&#39;徐伟伟&#39;:(&#39;女&#39;, 19),&#39;韩亮亮&#39;:(&#39;女&#39;,19)} 1)算法分析: 信息表中每一行存储的是和姓名有关的个人信息,可以考虑用字典存储。其中姓名作为键,性别和年龄可以以元组的形式作为值。然后通过字典的遍历完成统计和查询。 2)源程序:

3D打印机之Marlin固件配置

一、Marlin固件必要配置 打开Configuration.h文件,使用VS code的搜索功能来修改下面的参数。 配置波特率 #define BAUDRATE 250000 配置串口波特率,一般不修改。上位机的波特率要和这个一致才能正常通讯。 2. 配置主板类型 第 134 行 #define MOTHERBOARD BOARD_MKS_GEN_L 找到 boards.h 这个文件打开,就可以看到支持的主板类型。3d打印机主控板类型非常多,每个板子硬件连接都可能不同,所以这个参数必须要跟你自己的板子

acktomas的博客 2万+

Python基础刻意练习:字典与集合

task6 一.字典(dictionary) 字典和列表类似,也是可变序列。与列表不同的是,它是无序的可变序列,保存的内容是以“键一值对”的形式存放。键是唯一的,而值可以有多个。字典在定义一个包含多个命名字段的对象时很有用。 1.字典的创建 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 语法格式:d={key1 : ...

weixin_45774613的博客 488

深入理解梅尔刻度、梅尔滤波器组和梅尔时频谱图

读取一段音频,使用短时傅里叶变换,得到普通的时频谱图,然后绘制梅尔滤波器组,值得注意的是,librosa的梅尔滤波器组函数还带有权重归一化功能,即对一个三角形滤波器的每个权重,都除以该三角形的面积,如果不希望进行该归一化,设置参数。从公式可见,对数部分可以以自然对数为底数,也可以以10为底数,不同的底数对应不同的系数,要确定当前的系数,只需要代入(1000Hz, 1000mel)即可。其中,m是当前滤波器的序号,表征了当前的时间段,k是当前频率的序号,表征了当前正在对哪一频率的。

DEDSEC_Roger的博客 1万+

python基础任务三(字典、集合和条件结构)

一、字典 1.创建字典 字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 。 dict1={key1:value1,key2:value2} 键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 dict1={'me':23...

wyh_wen 437

从数据到图片:手把手构建FMCW雷达人体行为识别数据集(行走、跌倒、喝水等6类动作)

本文详细解析了如何利用FMCW雷达构建人体行为识别数据集,涵盖行走、跌倒、喝水等6类动作。通过多普勒特征可视化、图像标准化处理和自动化流水线设计,将原始雷达信号转化为高质量时频图像数据集,为智能家居和健康监护等应用提供可靠数据支持。

weixin_30706691的博客 385

WinInet 编程:MFC 中的互联网编程

WinInet 是一套 Windows API(应用程序编程接口),用于实现互联网应用程序的网络通信和数据传输。WinInet 抽象了底层网络协议和硬件细节,为程序员提供了一套统一的接口,简化了互联网应用程序的开发过程。WinInet 广泛应用于各种 Windows 应用程序中,包括网页浏览器、下载管理器、网络游戏等。MFC WinInet 是一套强大的类库,为 MFC 程序员提供了在 Windows 平台上实现互联网通信和数据传输的工具。

JAZJD的博客 1639

Python的学习心得和知识总结(三)|Python基础(列表、元组、字典和集合)

2020年4月4日15:03:07

孤傲小二~阿沐的博客 7738

车辆贷款违约预测挑战赛

2021科大讯飞-车辆贷款违约预测挑战赛--方案简介车贷违约预测问题,目的是建立风险识别模型来预测可能违约的借款人。预测结果为借款人是否可能违约,属于二分类问题。偏数据挖掘的比赛,关键点是如何基于对数据的理解抽象归纳出有用的特征。站在大佬的视角,尝试学习总结,站在巨人的肩膀上,也许看得会更远一些。直接进入主题,开始学习套路,芜湖~特征工程1、常用库、数据导入import pandas as pd import numpy as np import lightgbm as lgb import xgboost

平平淡淡,戒急用忍,一生学闭嘴。 3341

Python基础(三)Python容器:列表、元组、字典和集合

Python基础(三)Python容器:列表、元组、字典和集合 本文是我在学习期间的笔记,看的书是《python语言及其应用》。 转载请注明出处,谢谢。 本文链接 https://blog.youkuaiyun.com/Ming2017123123/article/details/98378499 list list() 将其他类型转换成列表 [offset] 获取元素 包含列表的列表 使用 offset...

二代红鱼的博客 371

基于 YOLOv8 的自动驾驶车辆障碍物检测与避障路径规划

本文探讨基于YOLOv8的自动驾驶车辆障碍物检测与避障路径规划系统。在感知层面,采用YOLOv8模型实现多类别障碍物识别,结合单目视觉距离估计和ByteTrack多目标跟踪算法,完成障碍物的稳定检测与运动状态估计。在路径规划层面,设计分层规划架构,融合全局路径规划与局部避障算法,重点实现Frenet坐标系下的采样优化算法和基于模型预测控制的实时避障轨迹生成。通过完整的代码实现与仿真实验,验证系统在复杂交通场景下的有效性与实时性,为自动驾驶开发者提供从理论到实践的完整技术参考。 关键词:YOLOv8;自动驾驶

huanghm88的专栏 254

一文搞懂LDO !

Start-up 时间是 IC 做死的,如果想要延时启动,最简单的办法是在 EN 上接一个大一些的电容到地,构成一个简单的 RC 电路。电容太小,电压跌落大,响应快。输出电流高,功率大;外围器件少,电路简单,成本低,负载响应快,输出纹波小;将采集的电压输入到比较器反向输入端,与正向输入端的基准电压(期望输出的电压)进行比较,再将比较结果进行放大;是指在给定负载变化下的输出电压的变化,这里的负载变化通常是从无负载到满负载。芯片的静态电流大小与其他性能成反关系,如低噪声,高电源电压抑制比,静态电流大。

weixin_46969363的博客 4385

Python基础数据类型(三)——字典、字节和集合类型

字典、bytes和set集合类型1.字典类型字典介绍创建字典访问字典增加和修改删除字典元素、清空字典和删除字典字典的方法2.bytes类型bytes介绍bytes创建bytes类型常用转换3.set集合类型集合介绍创建集合集合添加元素集合更新删除元素 1.字典类型 字典介绍 Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值的类型也可以是其它任何数据类型!

tltfl的博客 743

RFC-only 与 SAProuter 场景下,让 Claude 真正参与 SAP ABAP 开发

SAP ABAP 开发这几年正在出现一个很有意思的变化。过去我们说开发工具,脑子里大多是 SE80、SE38、SE24、SEGW、Eclipse ADT,再往后是 BAS、VS Code、abapGit、ATC、CI/CD。现在又多了一层,Claude Code、Claude Desktop 这类 AI 编程助手开始通过 MCP 进入开发现场,不只是写一段示例代码,而是能读系统里的 ABAP 对象、搜索包、改源码、跑检查、辅助重构。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1621

Task 5 字典集合与序列

1.学习知识构建 字典 集合 序列 2.学习知识 字典 大致就是两个列表之间的映射关系 判断字符是否可变是看hash(x)是否显示 字典 {一号,二号,三号.......} 通过锁定某些元素,运用index输出数据 而如果元素在原本的字典中不存在,就会报错为Keyerror 一个数据对应一个数据,类比于函数(数学里的),后出现的新数值可以取代前面的 dict.fromkeys(seq[,valve])可以新建一个没有输入数值的新字典 这个地方的函数和命令很多,我还没记住,先放在这

AlphaScang的博客 323

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Python中字典和集合的区别与联系

字典(dict)和集合(set)在 Python 被广泛使用,并且性能进行了高度优化,其重要性不言而喻。 字典和集合基础 字典是一系列由键(key)和值(value)配对组成的元素的集合。python3.7之后,字典底层是2个数组,一个为一维数组,存放hash(key)取余后的值作为数组的索引,对应索引位置存放键值对在二维数组的索引位置。因此二维数组是一个有序的数组。 相比于列表和元组,字典的性能更优,特别是对于查找、添加和删除操作,字典都能在常数时间复杂度内完成。 而集合和字典基本相同,唯一的区别,就是集

scu-liu的博客 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

python的集合和字典

python 的集合和字典

一个想交朋友的陌生人 1606

Python基础—序列、字典和集合

随着人工智能的不断发展,python这门技术也越来越重要,很多人都开启了学习python,本文就介绍了python的基础内容。以上就是今天要讲的内容,本文仅仅简单介绍了序列、字典和集合。

weixin_52196308的博客 783

Python 字典与集合

作者:billy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 字典 字典的创建和删除 访问字典 遍历字典 添加、修改和删除字典 字典推导式 集合 创建集合 向集合中添加和删除元素 集合的交集、并集和差集运算 ...

billy的博客 5819

Python编程实验三:集合和字典的基本应用

Python编程实验三:集合和字典的基本应用

Morse_Chen的博客 2934

7.Python中的集合、字典、集合和字典的应用整理总结

总结: 1.集合和集合的运算 2.字典和字典的运算及函数 3.集合和字典的应用 一、集合 集合是一类容器,元素没有先后顺序,并且元素的值不重复。 集合的字面量用花括号{} {1,5,7} {‘apple’,‘orange’,‘pear’,‘banana’} 创建集合: 直接给变量赋值一个集合字面量 fruit = {‘apple’,‘orange’,‘pear’,‘banana’} 使用 set()创建一个空集合 emp = set() 注:emp={} #创建一个空字典 使用set()将列表或者.

weixin_45994391的博客 1248

python基础二:python字典集合基础和一些经典使用案例

1. 写在前面 借着昨天的列表, 今天整理一些python字典和集合的基础和一些经典使用案例, 依然是从使用的角度去整理, 关于列表的理论知识和细节知识, 这里不做整理。 首先, 会整理字典和集合的基本操作, 字典创建的五种方法, 涉及字典的基础操作(字典的遍历, 字典的键值集合获取, 判断某些键是否在字典中, 键值对的添加和删除), 然后整理学完了字典应该怎么去用, 这个就涉及了一些经典的使用案例(topn键, 重复最多, 逻辑合并等), 当然也是不全, 后期根据学习再进行补充。 大纲如下: pytho

Miracle8070 2976
上一篇: Python基础(二)—列表和元组
下一篇: Python基础(四)—日期类型
luoz_python
博客等级 码龄10年 57粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值