2017-02-12 67 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 

该函数将返回一个由其值为空字符串的键组成的列表。