在Python中逐行打印出字典的值

时间:2011-10-03 00:49:56

标签: python list dictionary

我在这里有以下代码:

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 个答案:

答案 0 :(得分:2)

>>> 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 :(得分:1)

你可以这样做:

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

对于您的示例,这将打印:

0011
0101
1011
1011
1000
1011
1011

答案 2 :(得分:0)

创建一个生成器表达式来遍历数据结构,然后只打印其内容。

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