python:打印列表和特殊套管

Jas*_*n S 1 python polymorphism

我有一个列表,其中包含dicts或其他项目.

我想写一个方法打印列表,每个项目在一行,但特殊情况下的dicts; 就像是:

def printSpecialList(mylist):
  for item in mylist:
    if itemIsDict(item):
      printDictItem(item)
    else:
      print str(item)
Run Code Online (Sandbox Code Playgroud)

我可以实现一切itemIsDict- 但最简单的方法是什么?


只是一个澄清:

此列表的源使用字典文字生成项目,例如{'a': 3, 'b': 4},这使得使用知道如何格式化自己的特殊字典类型变得很麻烦.另外,我的printSpecialList方法有点复杂,并且它有自己的私有状态,它包含,所以实例测试,虽然"令人讨厌"(例如,有人不能创建一个不会从dict下降的模拟dict类用我的方法工作)似乎是去这里的最佳方式.

Ism*_*awi 6

def itemIsDict(item):
    return isinstance(item, dict)
Run Code Online (Sandbox Code Playgroud)