Python中如何实现与PHP等效的嵌套数组声明赋值操作
PHP嵌套关联数组赋值的Python等效实现
你给出的PHP代码作用是为嵌套关联数组的二级array2键赋值一个存储人员年龄的关联数组,在Python中关联数组对应的是字典(dict)类型,可按以下几种方式实现等效效果:
直接赋值(外层结构已存在时)
如果top_array已经预先初始化了外层array1对应的字典结构,可直接和PHP一样逐层赋值:
top_array['array1']['array2'] = {'Tom': '21', 'Tim': '22'}
外层结构不存在时的实现方案
如果没有提前初始化外层字典,直接执行上面的代码会抛出KeyError,可选以下两种常用方案处理:
- 方案1:手动逐层初始化字典
适合层级少的简单场景,写法最直观:# 逐层初始化外层字典 top_array = {} top_array['array1'] = {} # 赋值内层数据 top_array['array1']['array2'] = {'Tom': '21', 'Tim': '22'} - 方案2:使用
collections.defaultdict自动生成嵌套结构
适合嵌套层级多、不想手动逐层初始化的场景:from collections import defaultdict # 定义递归生成嵌套字典的函数 def nested_dict(): return defaultdict(nested_dict) top_array = nested_dict() # 不需要提前初始化外层,直接赋值即可 top_array['array1']['array2'] = {'Tom': '21', 'Tim': '22'} # 后续如果需要转为普通Python字典,外层套一层dict()即可 top_array = dict(top_array)
内容的提问来源于stack exchange,提问作者Bar Azulay
相关产品推荐
相关产品推荐

