首页 > 编程语言 >学习笔记:python:字典删除问题

学习笔记:python:字典删除问题

时间:2022-09-27 23:22:39浏览次数:51  
标签:遍历 删除 23 python items 笔记 friends 字典

python学习:字典

学习问题:如何删除字典中的一类元素
题目:删除字典friends中年龄大于23的friend

一个个删除明显达不到考察的目的,所以刚开始我的想法是:利用循环遍历字典中的数值进行判断

friends = {
    'jialiang':23,
    'wangChen':24,
    'jiaMing':22,
    'wangJie':22,
    'yuQing':24,
    'wenZhen':23,
    'haoNan':25,
    'luYi':23,
    'boWen':23,
}
for n,y in friends.items():      #先用循环遍历字典
    if y >= 23:                  #再用一个if来判断年龄大小
        del friends[n]           #接着删除符合年龄段的朋友
    else:                        
        print(f'{n}:{y}')        #再一个个输出

然而程序出现错误

  File "D:\pycharm\PyCharm Community Edition 2022.2.2\pythonProject\prctise.py", line 12, in <module>
    for n,y in friends.items():
RuntimeError: dictionary changed size during iteration

发现在for循环中不能改变字典

于是通过学习了两种解法:

1.通过列表
sc = []                             #创建一个空的列表
for n,y in friends.items():         
    if y >= 23:                     
        sc.append(n)                #将符合条件的y对应的n加入列表中
for a in sc:                        #再遍历列表
    del friends[a]                  #此时便可以对字典进行删除
2.通过新字典

(1)删除

t = friends
for n,y in friends.items():
    if y >= 23:
        del t[n]
friends = t

通过创建新字典,将旧字典赋值给字典,在遍历旧字典是对新字典进行删除,最后将新字典的新值赋给旧字典,就达到了对旧字典的删除。

(2)添加

t = {}
for n,y in friends.item():
    if y < 23:
        t[n] = y
friends = t

同样创建一个字典,只不过变成了加入元素,而不是删除。

标签:遍历,删除,23,python,items,笔记,friends,字典
From: https://www.cnblogs.com/102204216zxf/p/16736399.html

相关文章

  • 学习python-Day56
    今日学习内容序列化类常用字段类和字段参数常见字段类BooleanField BooleanField()NullBooleanField NullBooleanField()CharField CharField(max_length=None,m......
  • 【Python】FF14自动演奏
    首先需要配置一下键盘,像下面的配置就好:然后python代码如下:importmidoimporttimefrompymouseimportPyMousefrompykeyboardimportPyKeyboarddic={'60':'......
  • Flask学习笔记(六)-蓝图 blueprint的基本使用
    一、前言蓝图(blueprint)技术,可以帮助你实现flask应用的模块划分,在组织flask代码时,有两种模式,分别为功能式架构和分区式架构,使用蓝图,可以让项目架构更有层次,模块划分更便......
  • 基于python的企业it资产管理系统设计与实现-计算机毕业设计源码+LW文档
    摘 要网络的广泛应用给生活带来了十分的便利。所以把企业it资产管理与现在网络相结合,利用Python技术建设企业it资产管理系统,实现企业it资产的信息化。则对于进一步提高企......
  • Python可视化打包 exe,这个神器绝了
     可视化打包exe,这个神器绝了auto-py-to-exe是一个用于将Python程序打包成可执行文件的图形化工具。本文就是主要介绍如何使用auto-py-to-exe完成python程序打包。......
  • 基于python小区疫情防控系统设计与实现-计算机毕业设计源码+LW文档
    摘 要网络的广泛应用给生活带来了十分的便利。所以把小区疫情防控工作管理与现在网络相结合,利用Python技术建设小区疫情防控系统,实现小区疫情防控工作的信息化。则对于进......
  • 基于python的新生报到服务管理系统设计与实现-计算机毕业设计源码+LW文档
    摘要网络的广泛应用给生活带来了十分的便利。所以把新生报到服务管理与现在网络相结合,利用Python技术建设新生报到服务管理系统,实现新生报到服务的信息化。则对于进一步提......
  • mitudesk的Python日记 类
    一。一个比较常见的类可能如图:classmy(object):arg=0def__init__(self,arg):super(ClassName,self).__init__()self.arg=arg其中init是......
  • python流程控制
    python中的流程控制垃圾回收机制1.什么是垃圾回收机制呢? python语言中独有的垃圾回收机制,会自动智能的优化储存空间把没有作用的数据值删除,清除占用的内存空间。2.......
  • 【NLP开发】Python实现中文、英文分词
    1、简介机器学习之所以看上去可以解决很多复杂的问题,是因为它把这些问题都转化为了数学问题。而NLP也是相同的思路,文本都是一些「非结构化数据」,我们需要先将这些数据......