Я не хочу использовать вложенные циклы
Это глупо. Чтобы выполнить итерацию по каждому элементу многомерного массива, вам нужно , чтобы использовать вложенные циклы. Они могут быть неявными (map
или понимание списка), но это не значит, что их там нет! Следующее будет намного аккуратнее и чище, чем что-либо с map
или неприятной format
распаковкой.
for row in table:
for elt in row:
print <...>
Если вы действительно хотите знать, как использовать ваш метод:
import operator
for row in table:
print '{0} - {1} - {2}'.format(*map(operator.attrgetter('name'), row))
Скажите, что это не грязно и неясно по сравнению с вышеизложенным, не говоря уже о том, что вы жестко закодированы в магической константе 3 - что, если вы хотите перейти к таблице 4x4?