0

誰かが私が間違っているところを指摘できますか、実際にここで何が起こっているのか、例外を除いて正確に、またはこの問題に取り組むためのより良い方法.

dic = {'arun': 123213, 'hari': 31212, 'akila': 321, 'varun': 12132, 'apple': 3212}
u1 = {'arun': 123123, 'orange': 1324214}
u2 = {'akila': 1234124, 'apple': 123123}
u3 = {'hari': 144}
u4 = {'anna': 23322}
for key, value in dic.iteritems():
    try:
        A = u1[key]
        B = u2[key]
        C = u3[key]
        D = u4[key]

    except KeyError:
        continue
    print A, B, C, D  # fails to print 
4

4 に答える 4

6

ルックアップが失敗した場合、次のcontinueキーにスキップします。dicキーが見つからない場合でも結果が得られることが保証されている操作を使用したい場合、たとえばdict.get次のようにします。

for key, value in dic.iteritems():
    A = u1.get(key)  # A is None if not found
    # ...
    print A, B, C, D
于 2013-04-19T19:40:26.403 に答える
0

これを試して:

dic = {'arun': 123213, 'hari': 31212, 'akila': 321, 'varun': 12132, 'apple': 3212}
u1 = {'arun': 123123, 'orange': 1324214}
u2 = {'akila': 1234124, 'apple': 123123}
u3 = {'hari': 144}
u4 = {'anna': 23322}

for key in dic:
    print list(d.get(key) for d in (u1, u2, u3, u4))

出力をリストとして出力します。

>>> for key in dic:
...     print list(d.get(key) for d in (u1, u2, u3, u4))
... 
[123123, None, None, None]
[None, 1234124, None, None]
[None, 123123, None, None]
[None, None, 144, None]
[None, None, None, None]
于 2013-04-19T21:14:09.597 に答える