3

プロパティのコレクションがPythonのdictオブジェクト内に存在するかどうかを確認する良い方法は何ですか?

現在、これを行っていますが、より良い方法があるようです。

properties_to_check_for = ['name', 'date', 'birth']
for property in properties_to_check_for:
    if property not in dict_obj or dict_obj[property] is None:
        return False

本当にありがとう!

4

3 に答える 3

8

allジェネレーターで使用できます:

all(key in dict_obj for key in properties_to_check_for)

ループと同じように短絡しforます。現在のコードの直訳は次のとおりです。

all(dict_obj.get(key) is not None for key in properties_to_check_for)

d.get(key)Noneキーが辞書にない場合は返されるため、事前にキーが存在するかどうかを確認する必要はありません。

于 2013-06-02T00:21:50.833 に答える
3

使用できますany()

any(dict_obj.get(prop) is None for prop in properties_to_check_for )

propertyに何も見つからないproperties_to_check_for場合、またはその値が である場合、これは True を返しますNone

于 2013-06-02T00:21:30.707 に答える