Python遍历字典及判断对象类型
Posted 肖永威
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python遍历字典及判断对象类型相关的知识,希望对你有一定的参考价值。
1. 遍历嵌套字典
sport = {'person': {'name':'焦安静','age':25}, 'sport': '马拉松'}
for name, values in sport.items():
print(name,values)
if type(values).__name__ == 'dict':
for name,value in values.items():
print(name,value)
person {'name': '焦安静', 'age': 25}
name 焦安静
age 25
sport 马拉松
- dict.items(),以列表返回可遍历的(键, 值) 元组数组
- dict.keys(),以列表返回一个字典所有的键
- dict.values(),以列表返回字典中的所有值
2. 判断对象类型两种方法
2.1. isinstance
sport = {'person': {'name':'苏炳添','age':31}, 'sport': '百米'}
for name, values in sport.items():
print(name,values)
if isinstance(values,dict):
for name,value in values.items():
print(name,value)
person {'name': '苏炳添', 'age': 31}
name 苏炳添
age 31
sport 百米
判断其他对象类型,例如List。
a = ['a','b','c']
if isinstance(a ,list):
print(a,'list')
['a', 'b', 'c'] list
2.2. type
val1 = sport['person']
type(val1).__name__
'dict'
- type用于求一个未知数据类型的对象,isinstance用于判断一个对象是否是已知类型;
- type不认为子类是父类的一种类型,isinstance认为子类是父类的一种类型,即子类对象也属于父类类型.
3. 取字典数据其他方法
通过异常处理,避免不存在的键值对。
sport = {'person': {'name':'苏炳添','age':31}, 'sport': '百米'}
try:
for name, values in sport.items():
print(name,values)
if isinstance(values,dict):
for name,value in values.items():
print(name,value)
except:
pass
person {'name': '苏炳添', 'age': 31}
name 苏炳添
age 31
sport 百米
直接取嵌套键值数据。
sport = {'person': {'name':'苏炳添','age':31}, 'sport': '百米'}
val = sport['person']['name']
val
'苏炳添'
以上是关于Python遍历字典及判断对象类型的主要内容,如果未能解决你的问题,请参考以下文章
Python中字典数据类型,字典.values()可以进行遍历,为啥不能通过角标进行获取元素?