Как я могу напечатать список с форматированием? - PullRequest
0 голосов
/ 28 марта 2012

У меня есть список:

L = [1, 2, 3, 4, 5, 6] 

и я хочу напечатать

1 B 2 J 3 C 4 A 5 J 6 X 

из этого списка.

Как мне это сделать?

Нужно ли составлять еще один список и zip составлять их, или я могу каким-то образом получить буквы в своем спецификаторе формата?

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

Вы можете сделать это любым способом:

L = [1, 2, 3, 4, 5, 6]

from itertools import chain

# new method
print "{} B {} J {} C {} A {} J {} X".format(*L)
# old method
print "%s B %s J %s C %s A %s J %s X" % tuple(L)
# without string formatting
print ' '.join(chain.from_iterable(zip(map(str, L), 'BJCAJX')))

См. Документы по формату str. и форматирование строки .

1 голос
/ 28 марта 2012

Хороший способ сделать это - иметь словарь цифр для префиксов:

prefixes = {1: 'B', 2: 'J', 3: 'C', 4: 'A', 5: 'J', 6: 'X'}

Тогда вы можете сделать:

print ' 'join('%s %s' % (num, prefix) for num, prefix in prefixes.itervalues())

Если у вас также есть список букв:

nums = [1, 2, 3, 4, 5, 6]
ltrs = ['B', 'J', 'C', 'A', 'J', 'X']

print ' '.join('%s %s' % (num, ltr) for num, ltr in zip(nums, ltrs)
...