2017-02-12 54 views
1

您好傢伙我想從字典中迭代獲取密鑰以防萬一鍵會空,但我不知道如何實現這一點。Python在字典中迭代以獲取空鍵

有什麼想法?

def val(**args): 
    args = args 
    print args 



    # print args 
    # print (args.keys()) 

val(name = '', country = 'Canada', phone = '') 

白衣這個例子中我得到{「國家」:「加拿大」,「名」:「」,「電話」:「」}但是當我真的很是讓唯一的密鑰在使用append的列表中清空鍵時,問題在於它給出了所有的鍵,而不僅僅是空鍵。

在這種情況下,我想回是這樣的: 姓名,電話

我感謝你的幫助。

+3

那麼,你爲什麼認爲'args = args'什麼都沒做? – Bakuriu

回答

2

迭代字典和提取鍵,其中值是空字符串:

empty_keys = [k for k, v in args.items() if v == ''] 

或作爲一個函數:

>>> def val(**args): 
...  return [k for k, v in args.items() if v == ''] 
... 
>>> val(name = '', country = 'Canada', phone = '') 
['phone', 'name'] 
1

這是你如何讓空鍵列表:

empty = [k for k, v in args.items() if not v or v.isspace()] 

請注意,上述內容包括值爲None或的情況10個或只有空格。

0

for語句可用於遍歷字典的鍵/值,然後您可以對它們執行所需的操作。

def val(args) : 
    outputList = [] 
    for k, v in args : 
     if v == '' : 
     outputList.append(k) 
    return outputList 

該函數將返回一個由其值爲空字符串的鍵組成的列表。