python批量删除字典元素,python 删除指定元素

  python批量删除字典元素,python 删除指定元素

  初始代码(此代码执行错误):

  # coding=utf-8D={ Google : www . Google . com ,白茹: www.baidu.com , Taobao : www . Taobao . com } for key,value in D . items():if value== www . Google . com :D . pop( Google )else:continue print(D)错误指示如下:

  RuntimeError:字典在迭代过程中改变了大小

  分析原因:

  在遍历过程中不能修改字典元素,也就是在迭代过程中不能添加或删除属性,只能改变属性值。

  解决方案:

  因为dict.keys()是python3中的迭代器。不允许在操作过程中修改迭代器。所以我们必须把迭代器(data.keys())改成列表(非迭代器),这样才能对字典进行操作。其实这里我们已经把for循环迭代的对象从原来的data.keys()改成了由data.keys()组成的list()数据。

  代码修改如下

  # coding=utf-8D={ Google : www . Google . com ,白茹: www.baidu.com ,Taobao : www . Taobao . com } for key in list(d . keys()):if d[key]= www . Google . com :del d[key]continue print(d)# output:{ { 白茹: www . Baidu . com Taobao : www . Taobao . com }细心的朋友会发现,这里我们对data.keys()做了list()操作。请想一想我们为什么要做这样的手术?

  因为dict.keys()是python3中的迭代器。不允许在操作过程中修改迭代器。所以我们必须把迭代器(data.keys())改成列表(非迭代器),这样才能对字典进行操作。其实这里我们已经把for循环迭代的对象从原来的data.keys()改成了由data.keys()组成的list()数据。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: