Есть ли в Python элегантный способ распечатать список в настраиваемом формате без явного цикла?

Я знаю, что вы можете сделать

print str(myList)

чтобы получить

[1, 2, 3]

, и вы можете сделать

i = 0
for entry in myList:
  print str(i) + ":", entry
  i += 1

, чтобы получить

0: 1  
1: 2  
2: 3    

Но есть ли способ, аналогичный первому, чтобы получить результат, аналогичный последнему?

С моими ограниченными знаниями Python (и некоторой помощью со стороны документация), лучше всего:

print '\n'.join([str(n) + ": " + str(entry) for (n, entry) in zip(range(0,len(myList)), myList)])

Это не намного менее многословно, но, по крайней мере, я получаю настраиваемую строку в одном (составном) выражении. Можете ли вы сделать лучше?

43
задан Peter Mortensen 28 December 2010 в 12:41
поделиться