python如何将多维字典每个键的值转换成多维列表?

Python024

python如何将多维字典每个键的值转换成多维列表?,第1张

定义一个递归函数就行了,下面是一个例子:

def get(d):

l=[]

for k,v in d.items():

if isinstance(v,dict):

l.append(get(v))

else:

l.append(v)

return l

d={"1":"2","a":{"b":{"c":"1"}},"b":"c"}

l=get(d)

print(l)

这是运行截图:

dict 是记录复杂无序数据,就是一对多,可以理解为多维数组.

映射类型相关的函数

比如你记录一次野餐朋友带的食物数量, dict = {'小明':{'红烧肉':6,'大闸蟹':8,'水煮鱼':1},'小花':{'黄瓜':9,'番茄':2},'小六子':{'啤酒':30,'可乐':40}}

dict可以嵌套list,把无序的数据调整为有序的数据,可以简单地理解为,一对多个一维数组,本质上还是多维数组.

比如你要记录同学们有多少个女朋友,dict = {'小明':['1号女友','2号女友'],'大个子':['1号女友','2号女友','3号女友']},你要统计谁的女朋友多,这个就比较明显地体现出来了.

比如你要记录一次会议参加的人员的基本信息,大家的信息都不一样时,也是无序随机事件:

dict = {'男性':{'张博':{'年龄':30,'职业':'老师','级别':'高级教师'},'王强':{'手机':'1309999999'}},'女性':{'小花':{'爱好':'化妆','职业':'美容师'}}}

写法:字典序列[key] = 值***字典为可变类型

常用方法:

1、# 新增字典中的数据

dict1 = {'name':'huu','age':20,'gender':'男'}

dict1['id'] = 133

print(dict1)

2、# 修改字典中的数据

dict1['name'] = 'xiauaiguai'

print(dict1)

3、删除字典或删除字典中指定键值对

del()/del:

dict1 = {'name':'huanghu','age':30,'gender':'男'}

# del(dict1) 直接将字典删除了,运行报错

del dict1['name']

print(dict1)

# del dict1[names]删除不存在的key,运行报错

4、清空字典

clear():

dict1.clear()# 清空字典

print(dict1)

5、查找

key值查找

如果当前查找的key存在则返回对应的值,否则则报错

函数查找

get():如果当前查找的key不存在则返回第二个参数值(默认值),

如果省略第二个参数则返回 None

key()

dict1 = {'name':'huhu','age':20,'gender':'男'}

print(dict1['name']) # huhu

print(dict1['id'])# 报错

# 1, get()查找

print(dict1.get('name')) # huanghu

print(dict1.get('id',133)) # 133--如果当前查找的key不存在则返回第二个参数值(默认值)

print(dict1.get('id')) # None--如果省略第二个参数则返回 None

# 2, keys() 查找字典中所有的key,返回可迭代对象

print(dict1.keys()) # dict_keys(['name', 'age', 'gender'])

# 3,values() 查找字典中所有的values,

print(dict1.values()) # dict_values(['huanghu', 30, '男'])

# 4, items() 查找字典中所有的键值对,返回可迭代对象,里面的数据是元组,

元组数据1是字典中的key,元组数据2是字典key对应的值

print(dict1.items()) # dict_items([('name', 'huahu'), ('age', 20), ('gender', '男')])