2017-09-22 9 views
0
d1 = {'name': 'Sagar','age': 25}  
d2 = {'name': 'Sassdr', 'age':122}  
d3 = {'name': 'Saga23weer', 'age':123344}  
d4 = {'name': '2133Sagar', 'age':14322}  
ch = input("Enter your value: ") 

これらの辞書から入力値を検索するにはどうすればよいですか? そして値が見つかった場合は「見つからない」という結果を返します。Pythonで辞書の値をチェックする方法は?

+4

あなたは何を試みましたか –

+0

はいPaul。キーではない値を検索したい –

答えて

1

をチェックしてみてください。

d1 = {'name': 'Sagar','age': 25}  
d2 = {'name': 'Sassdr', 'age':122}  
d3 = {'name': 'Saga23weer', 'age':123344}  
d4 = {'name': '2133Sagar', 'age':14322} 
d = [d1,d2,d3,d4] 

def check(ch): 
    for entry in d: 
     if entry["name"] == ch: 
      return("found") 
    return ("Not found") 

while True: 
    ch = input("Enter your value: ") 
    if ch == "stop": 
     break 
    print(check(ch)) 

出力:

>>> 
Enter your value: Sagar 
found 
Enter your value: Someone 
Not found 
Enter your value: 2133Sagar 
found 
Enter your value: stop 
+0

ありがとうございます@Raju Pitta –

+0

あなたが探しているものを見つけたら、質問に回答としてマークしてください。 –

2

なぜ検索値は1つではなく異なる辞書にありますか?

この

は1

d5 = {**d1, **d2, **d3, **d4} 

内のすべての辞書をマージして、辞書のリストを作成し、それを検索

if ch in d5 .values(): 
    print "Found" 
else: 
    print "Not Found" 
+0

マージは、Pythonのバージョンが3.5以上の場合にのみ有効です。 https://www.pythonを参照してください。org/dev/peps/pep-0448/ –

0

あなたが望む効果がキースワップと呼ばれています。このスニペットは次の実装です。

def keyswap(yourdict): 
    cache = {} 
    for i in yourdict.keys(): 
     cache[yourdict[i]] = i 
    for i in cache.keys(): 
     yourdict[i] = cache[i] 
    del cache 

キーはインプレースです。

0

次のコード

Python2

def IsFound(): 
    list_dict = [d1, d2, d3, d4] 
    values_list = [] 
    for each in list_dict: 
     values_list += each.values() 

    ch = input('enter your value') 
    if ch in values_list: 
     return 'Found' 
    else: 
     return 'Not Found' 

のpython3

def IsFound(): 
    dict = {**d1, **d2, **d3, **d4} 

    ch = input('enter your value') 
    if ch in dict.values(): 
     return 'Found' 
    else: 
     return 'Not Found' 
0

あなたがする必要が使用することができます。

  1. は、辞書の値を取得します。

  2. すべてのdictsを検索します。

  3. 結果が一致した場合、 "Found"とマークします。ステップ1のため

dict.values() 

ステップ2:

誰もが与えられるように、すべてのdictsを結合する多くの方法が、あります。

あなたの入力は次のように一致した場合、次に検索し、新しいリストを設定するには、最初にすべての値を選ぶことができます。

# combine all dicts 
d = d1.values() + d2.values() +d3.values() + d4.values() 
# judge if matches 
if ch in d: 
    # do something 

は、このコードは、あなたの混乱を解放することができると思います。

関連する問題