2016-11-16 12 views
-2

辞書の印刷キーと値のペアが

a = [ 
{"name": "Tom", "age": 10}, 
{"name": "Mark", "age": 5}, 
{"name": "Pam", "age": 7} 
] 

search_name = 'Tom' 

for i in a: 
    for key in i: 
     if (i[key] == search_name): 
      print (item for item in a).next() 
     else: 
      print 'No Name' 

私は「名前のない」というメッセージ

+2

フム、それを印刷しないのですか? – DeepSpace

+0

しかし、このメッセージが必要です。私の辞書に名前がない場合、ユーザーは「名前なし」を受け取る必要があるからです。しかし、私の辞書に名前があっても、私はまだ「名前なし」というメッセージを受け取ります。 – andrew

答えて

0

クリーナーを見ないようにしたくありませんそれを達成する方法は次のようになります。

for dic in a: 
    name = dic.get('name') # will return None if dic has no `name` key 
    if name and name == search_name: 
     print dic 
    else: 
     print 'No Name' 

しかし、いずれにせよ、No Nameは、単にそれを印刷していない見てwan'tしない場合。

+0

辞書に名前がない場合はこのメッセージが必要ですが、問題は辞書に名前があってもメッセージが表示されることです。 – andrew

+0

@andrewよろしくお願いします。 – DeepSpace

+0

私の辞書にない名前を入れても、「No Name」というメッセージは表示されませんでした。 – andrew

0

もちろん、あなたはそれを見ることができます。辞書キー(for key in i)を繰り返し、i["age"]search_nameを一致させると、No Nameと表示されます。

0

は試す

for dict in a: 
    if search_name in dict.values(): 
     print dict 
    else: 
     print "No name" 
あなたはそれを表示したくない場合は
+0

「名前がありません」という2回のメッセージ – andrew

関連する問題