首页 > 其他分享 >删除字典中的空值

删除字典中的空值

时间:2024-01-22 23:57:43浏览次数:43  
标签:current None name 删除 nested 空值 data stack 字典

def remove_none_values_iterative(data):
    stack = [data]
    
    while stack:
        current = stack.pop()
        
        if isinstance(current, dict):
            for key, value in list(current.items()):
                if value is None:
                    del current[key]
                else:
                    stack.append(value)
        elif isinstance(current, list):
            current[:] = [item for item in current if item is not None]
            stack.extend(reversed(current))
    
# 测试数据
nested_data = {
    'name': None,
    'age': 25,
    'address': {
        'city': 'New York',
        'zip': '10001'
    },
    'friends': [
        {'name': None, 'age': 23},
        {'name': 'Bob', 'age': 27}
    ]
}

# 删除None值
remove_none_values_iterative(nested_data)

# 打印结果
print(nested_data)

标签:current,None,name,删除,nested,空值,data,stack,字典
From: https://www.cnblogs.com/dhxuy/p/17981413

相关文章

  • DELETE 循环中删除某条数据
    *&---------------------------------------------------------------------**&ReportZZTEST*&---------------------------------------------------------------------**&*&-------------------------------------------------------------------......
  • Git必知必会基础(06):分支创建、切换、更新、删除、拉取(fetch)
     简介分支就是版本上的更新送代,默认只有master主分支可以从主分支上分离出其他的分支,各分支间互不干扰每个项目,一般有多个分支,比如master(主干分支)、开发分支、测试分支、生产bug分支等等线上环境,一个项目也可能会有多个稳定分支同时在线上运行但是,分支越多,后期合并分支的成本越大,......
  • Go语言核心36讲 09 | 字典的操作和约束
    至今为止,我们讲过的集合类的高级数据类型都属于针对单一元素的容器。它们或用连续存储,或用互存指针的方式收纳元素,这里的每个元素都代表了一个从属某一类型的独立值。我们今天要讲的字典(map)却不同,它能存储的不是单一值的集合,而是键值对的集合。什么是键值对?它是从英文key-va......
  • 「闲话随笔」【数据删除】考试题解
    「闲话随笔」【数据删除】考试题解点击查看目录目录「闲话随笔」【数据删除】考试题解T2T3T4T5T6T7T1T8T9被教练斩了.级部为啥不让公布分数?哦好像确实不该.咋四机房就我还没停whk,那我还挺高贵的.昨天中午saidtoFLORIZ:感觉现在是提前体验退役生活了,回班之后小测......
  • 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象
    快速对比两个list数据集合此文引用csdn:https://blog.csdn.net/Zhu_daye/article/details/104798410小批量、快速对比两个list数据集合usingSystem.Linq.Expressions;Main();voidMain(){//对比源集合varsource=GenerateStudent(1,10000,1000);//......
  • SpringBoot项目通过注解快速解决,字典翻译,响应数据加密,数据脱敏等问题
    简介在几乎所有SpringBoot项目中都会面临字典翻译,接口数据加密,数据脱敏的问题。在每个接口中单独的解决会非常繁琐,因此接下来介绍一下怎么通过注解快速解决这些问题。实现步骤1.引入maven坐标<dependency><groupId>io.gitee.gltqe</groupId>......
  • 代码随想录算法训练营第 十 一 天| 20. 有效的括号 1047. 删除字符串中的所有相邻重
    LeetCode 20.有效的括号题目链接:20.有效的括号思路:采用栈数据结构解题;遇到左括号,压右括号入栈 LeetCode 1047.删除字符串中的所有相邻重复项题目链接:1047.删除字符串中的所有相邻重复项注意:Java中队列实现类API的使用 LeetCode 150.逆波兰表达式求值题目链......
  • 如何恢复已经删除的 docker 容器的数据
    前言使用docker自带的volume机制进行数据的持久化,docker会在宿主机的特定位置(/var/lib/docker/volumes)维护各个volumes,面对容器删除的问题,有如下几个结论:容器启动(dockerrun)时,即使没有显示的指定-v-mount参数,容器的相关数据已经被作为volumes持久化存储了,比如在/var/li......
  • leedcode 删除有序数组中的重复项
    classSolution:#12234defremoveDuplicates(self,nums):nums_len=len(nums)#5ifnums_len==0:returnnums_lenifnums_len==1:returnnums_lenflag=Truei=0whilef......
  • 【Python】查找和删除表格中的重复行
    查找:importpandasaspddf=pd.read_excel("秘籍.xlsx")#打开list1=[]foriinrange(df.shape[0]):#总行数list1.append(list(df.values[i]))#将每行以列表的形式装入列表forxinlist1:iflist1.count(x)>1:#如果列表中元素出现次数>1prin......