2017-02-12 7 views
1

こんにちは私はいくつかのキーが空である場合のためにキーを取得するために辞書から反復しようとしていますが、これを達成する方法はわかりません。Python空のキーを取得するために辞書を反復する

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



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

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

は、私が得たこの例聖霊降臨祭{「国」:「」、「電話」:「「カナダ」、「name」を」}が、私が本当に探しているのキーのみを取得することですリスト内の空のキーを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 

この関数は、値が空の文字列であるキーで構成されるリストを返します。

関連する問題