如果值为空,如何在从dict打印时跳过一个值

时间:2012-03-09 06:31:20

标签: python dictionary

我有一个词典

x4={'c;1': 'c4;;c6', 'b;1': 'a2;b2;c2;d2', 'b;0': 'A1;B1;C1;D1', 'a;1': 'a1;b1;c1;d1', 'a;0': 'A;B;C;D', 'c;0': 'c1;c2;c3'}

我正在使用此代码:

for k,v in x4.iteritems():
    a = k.split(";")
    b = v.split(";")
    if a[1] is not '0':
     val = x4[a[0]+';0']
     values = val.split(";")
     for i in range(len(values)):
         if values[i]=='' is True:
             b[i]=''
         else:
             print '<%s>%s<%s>' % (values[i],b[i],values[i])

输出其打印是

<c1>c4<c1>
<c2><c2>
<c3>c6<c3>
<A1>a2<A1>
<B1>b2<B1>
<C1>c2<C1>
<D1>d2<D1>
<A>a1<A>
<B>b1<B>
<C>c1<C>
<D>d1<D>

但我想要的是

<c1>c4<c1>
<c3>c6<c3>
<A1>a2<A1>
<B1>b2<B1>
<C1>c2<C1>
<D1>d2<D1>
<A>a1<A>
<B>b1<B>
<C>c1<C>
<D>d1<D>

不应打印'c2'..我正在使用此代码打印分组数据。请帮助我

1 个答案:

答案 0 :(得分:1)

x4={'c;1': 'c4;;c6', 'b;1': 'a2;b2;c2;d2', 'b;0': 'A1;B1;C1;D1', 'a;1': 'a1;b1;c1;d1', 'a;0': 'A;B;C;D', 'c;0': 'c1;c2;c3'}

for k,v in x4.iteritems():
    a = k.split(";")
    b = v.split(";")
    if a[1] is not '0':
        val = x4[a[0]+';0']
        values = val.split(";")
        for i in range(len(values)):
            if values[i] is '':
                b[i]=''
            else:
                if  b[i]:
                    print '<%s>%s<%s>' % (values[i],b[i],values[i])

输出:

<A1>a2<A1>
<B1>b2<B1>
<C1>c2<C1>
<D1>d2<D1>
<c1>c4<c1>
<c3>c6<c3>
<A>a1<A>
<B>b1<B>
<C>c1<C>
<D>d1<D>