0

値がタプルである辞書があります

dict={'A':('1','2','3'),'B':('2','3','xxxx')....}

すべての値の 3 番目の要素に '' または None があるかどうかを確認する必要があります。
ブール値の評価だけが必要です。
これを実現する最も簡潔な方法は何ですか?

これは私がしたことです:

all(not v[2] for v in dict.values())

しかし、これにはより良い「任意の」形式があると思いますか?

4

5 に答える 5

1

これはどう:

all(dict[k][2] is None or dict[k][2] == "" for k in dict)
于 2013-08-07T16:19:33.583 に答える
0
reduce(lambda x,y: x and y[2] not in ('', None), d.values(), True)
于 2013-08-07T23:52:25.077 に答える
0

これは単純な機能ソリューションです。

not filter( lambda l : not l, [ v[2] for v in d.values()] )

またはが 3 番目の位置に見つからず、それらの値のいずれかが見つかったFalse場合に返されます。Best way to check if a list is emptyから部分的に適応。''NoneTrue

于 2013-08-08T00:06:17.870 に答える