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字典或者对象类型中键或者属性的获取与存在性判断

Python中字典数据类型,字典.values()可以进行遍历,为啥不能通过角标进行获取元素?

Python代码阅读(第38篇):根据谓词函数和属性字符串构造判断函数

13 个非常有用的 Python 代码片段

Python中的字典及举例

Python数据类型:字典类型及常用方法(updatedelpopkeysvaluesitemssort)