You can use following structure: (as an example)
composition = iface.activeComposers()[0].composition()
items_model = composition.itemsModel()
list_of_composer_items = items_model.zOrderList()
# OUT:
# [<qgis._core.QgsComposerArrow object at ..>, <qgis._core.QgsComposerLegend
# object at ..>, <qgis._core.QgsComposerScaleBar object at ..>,
# <qgis._core.QgsComposerMap object at ..>]
NOTE: "This list includes both items currently in the composition and items which have been removed from the composition."
UPDATE: Thanks to @ndawson. composition.items()
returns existing items in a composition in addition to three more objects; two QGraphicsRectItem
and a QgsPaperItem
(QGIS 2.18). Even if you don't add any item, those three items will exist in the list.
>>> composition = iface.activeComposers()[0].composition()
>>> composition.items()
[<PyQt4.QtGui.QGraphicsRectItem object at ..>,
<PyQt4.QtGui.QGraphicsRectItem object at ..>,
<qgis._core.QgsPaperItem object at ..>]