首页 > 编程 > Python > 正文

Python使用字典的嵌套功能详解

2020-01-04 11:58:25
字体:
来源:转载
供稿:网友

当需要存储很多同类型的不通过数据时可能需要使用到嵌套,先用一个例子说明嵌套的使用

1、在列表中存储字典

#假设年级里有一群国际化的学生,有黄皮肤的中国人、有白皮肤的美国人也有黑皮肤的非洲人,只记录部分特征student_1={'nationality':'China','colour':'yellow','age':'15'}student_2={'nationality':'America','colour':'white','age':'18'}student_3={'nationality':'Africa','colour':'dark','age':'17'}grade = [student_1,student_2,student_3]for student in grade:  print(student)

输出:

{‘nationality': ‘China', ‘age': ‘15', ‘colour': ‘yellow'} 
{‘nationality': ‘America', ‘age': ‘18', ‘colour': ‘white'} 
{‘nationality': ‘Africa', ‘age': ‘17', ‘colour': ‘dark'}

注意,上边的实例中就将字典作为列表的元素进行了嵌套,然后利用列表进行遍历 
下边假设年级里有30个同样年龄的中国学生,利用嵌套进行生成

#定义一个存储中国学生的列表,假设年龄都一样chinese=[]#创建30个中国学生for student in range(0,30):  student_1={'nationality':'China','colour':'yellow','age':'15'}  chinese.append(student_1)#显示一共创建了多少个学生print('一共创建了:'+str(len(chinese))+'个学生')#显示前5个中国学生for stu in chinese[:5]:  print(stu)

输出:

{‘colour': ‘yellow', ‘age': ‘15', ‘nationality': ‘China'} 
{‘colour': ‘yellow', ‘age': ‘15', ‘nationality': ‘China'} 
{‘colour': ‘yellow', ‘age': ‘15', ‘nationality': ‘China'} 
{‘colour': ‘yellow', ‘age': ‘15', ‘nationality': ‘China'} 
{‘colour': ‘yellow', ‘age': ‘15', ‘nationality': ‘China'}

可是这么多学生的年龄都相同,显得不够自然,我们将前两个中国学生改成美国学生、年龄改成14岁

#定义一个存储中国学生的列表,假设年龄都一样chinese=[]#创建30个中国学生for student in range(0,30):  student_1={'nationality':'China','colour':'yellow','age':'15'}  chinese.append(student_1)#显示一共创建了多少个学生print('一共创建了:'+str(len(chinese))+'个学生')for student_c in chinese[0:2]:  if student_c['nationality']=='China':    student_c['nationality']='America'    student_c['colour']='white'    student_c['age']=14#显示前5个中国学生for stu in chinese[:5]:  print(stu)

输出:

一共创建了:30个学生 
{‘colour': ‘white', ‘nationality': ‘America', ‘age': 14} 
{‘colour': ‘white', ‘nationality': ‘America', ‘age': 14} 
{‘colour': ‘yellow', ‘nationality': ‘China', ‘age': ‘15'} 
{‘colour': ‘yellow', ‘nationality': ‘China', ‘age': ‘15'} 
{‘colour': ‘yellow', ‘nationality': ‘China', ‘age': ‘15'}

备注:学到这里发现列表和字典的知识有点薄弱啊

2、在字典中存储列表

假设有个小店,里边卖了2种粥,但是每种粥的配料都不一样,利用一个字典记录两种粥及其配料

#为了简化就不把配料全写出来了gruel={  '八宝粥':['大米','桂圆','红枣','芡实','莲子','薏仁','黑豆','核桃仁'],  '瘦肉粥':['大米','瘦肉']  }for key,value in gruel.items():  print('/n'+key,end=':')  for batching in value:    print(batching, end=' ')

输出:

八宝粥:大米 桂圆 红枣 芡实 莲子 薏仁 黑豆 核桃仁 
瘦肉粥:大米 瘦肉

注意:
为了实现print()输出不换行,这里增加了end参数 
配料作为列表存储在了字典里

3、在字典中嵌套字典

以班里有两个同学为示例

grade={  '赵丽颖':{    '国籍':'中国',    '民族':'汉',    '出生日期':'1987年10月16日',    '身高':'165cm',        },  '杨幂':{    '国籍':'中国',    '民族':'汉',    '出生日期':'1986年9月12日',    '身高':'166.5cm',     }  }for name,info in grade.items():  print(name)  for key,value in info.items():    print(key+':'+value)

输出:

杨幂 
国籍:中国 
民族:汉 
出生日期:1986年9月12日 
身高:166.5cm 
赵丽颖 
国籍:中国 
民族:汉 
出生日期:1987年10月16日 
身高:165cm

这一节主要学习了字典的嵌套功能,主要学习了列表中嵌套字典、字典中嵌套列表、字典中嵌套字典的方式实现字典的复杂运用

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对VEVB武林网的支持。


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表