2017-09-22 141 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

是的保羅。我想要搜索的值不是關鍵 –

回答

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

爲什麼在不同的字典而不是一個搜索值?

試試這個

合併在一個

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. 搜索所有字母;

  3. 如果匹配,則將結果標記爲「找到」。

第1步:

dict.values() 

步驟2:

有許多方法向所有類型的字典結合起來,爲大家給。

你可以先挑選所有的值設置一個新的列表,然後搜索,如果你的輸入這樣的匹配:

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

希望這段代碼可以釋放你的迷惑。