Вывод значений словаря построчно в Python - PullRequest
0 голосов
/ 03 октября 2011

У меня есть следующий код:

tel = {2: [[0, 0, 1, 1], [0, 1, 0, 1]], 3: [[1, 0, 1, 1], [1, 0, 1, 1], [1, 0, 0, 0], [1, 0, 1, 1], [1, 0, 1, 1]]}

for i in tel.values():
    a = ''.join(map(str,i)) 

    print a

Словарь tel состоит из ключей, представляющих собой число 1 в значении ключа (здесь они представляют собой списки двоичных файлов).Значения ключа могут иметь более одного значения (в данном случае это так)

Строка выводит значения, принадлежащие каждому ключу.

Моя цель:

Я хочу напечатать строковую версию каждого значения.

В приведенном выше примере я хочу, чтобы выходные данные были:

0011
0101
1011
1011
1000
1011
1011

Как бы мне этого добиться?

Ответы [ 3 ]

2 голосов
/ 03 октября 2011
>>> for x in tel.values():
...     for y in x:
...             print ''.join(str(z) for z in y)
... 
0011
0101
1011
1011
1000
1011
1011
1 голос
/ 03 октября 2011

Вы можете сделать:

for key in tel:
    for num in tel[key]:
        print ''.join(str(n) for n in num)

Для вашего примера это печатает:

0011
0101
1011
1011
1000
1011
1011
0 голосов
/ 03 октября 2011

Создайте выражение генератора для обхода структуры данных, а затем просто напечатайте его содержимое.

val_gen = (''.join(map(str,v)) for vs in tel.values() for v in vs)

for v in val_gen:   # Or sorted(val_gen) if order matters.
    print v
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...