python:打印列表和特殊外壳字典

标签 python polymorphism

我有一个列表,其中包含 dict 或其他内容的项目。

我想写一个打印列表的方法,每一项都在一行中,但特殊情况下是字典;像这样的东西:

def printSpecialList(mylist):
  for item in mylist:
    if itemIsDict(item):
      printDictItem(item)
    else:
      print str(item)

我可以实现除 itemIsDict 之外的所有东西 -- 最简单的方法是什么?


只是一个澄清:

此列表的来源使用字典文字生成项目,例如{'a': 3, 'b': 4},这使得使用知道如何自行格式化的特殊字典类型变得很麻烦。此外,我的 printSpecialList 方法有点复杂,它有自己的私有(private)状态,所以实例测试,尽管“令人讨厌”(例如,有人无法制作一个模拟字典类不是从适合我的方法的 dict 派生而来)似乎是最好的方法。

最佳答案

def itemIsDict(item):
    return isinstance(item, dict)

关于python:打印列表和特殊外壳字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8884949/

相关文章:

Python:单行列表反转

python - 如何为子类强制执行方法签名?

python - Heroku 中的 Django 应用程序和本地部署

python - Matplotlib:调整条形图中错误栏的 z 级别

java - 检查调用对象是否是子类的实例

java - 如何将实现接口(interface)的类添加到 ArrayList

c# - 当调用递归泛型接口(interface)上的扩展方法时,结构实例是否会被装箱?

C++ 无法将派生类转换为基类

python - 如何使用 python 中的一组标签生成标记(分类)一组对象的所有可能方式?

python - 在 Windows 10 中使用 OpenCV 2.4.1 & python 2.7.15 属性错误 : 'moduleobject has no attribute ' createLBPHFaceRecognizer'