как пропустить значение при печати из dict, если значение пустое - PullRequest
0 голосов
/ 09 марта 2012

У меня есть dict

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 Ответ

1 голос
/ 09 марта 2012
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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...