簡體   English   中英

評估字典的值

[英]evaluating values of a dictionary

我有一本字典,其中的值是元組

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

我需要找出所有值的第三個元素中是否都包含''或None。
它只需要是一個布爾值。
實現這一目標的最簡潔方法是什么?

這是我所做的:

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

但是我想會有更好的“任何”形式嗎?

Python 2:

boolean = all(value[2] in ('', None) for value in your_dict.itervalues())

Python 3:

boolean = all(value[2] in ('', None) for value in your_dict.values())

您可以使用(Py2x使用itervalues())

all(elem[2] in ('', None) for elem in test.values())

觀看演示-

>>> test = {'a': (1, 2, None), 'b':(2, 3, '')}
>>> all(elem[2] in ('', None) for elem in test.values())
True
>>> test['c'] = (1, 2, 3)
>>> all(elem[2] in ('', None) for elem in test.values())
False

這個怎么樣:

all(dict[k][2] is None or dict[k][2] == "" for k in dict)
reduce(lambda x,y: x and y[2] not in ('', None), d.values(), True)

這是一個簡單的功能解決方案:

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

如果在第三個位置未找到''None ,則返回False如果找到其中一個值,則返回True 部分改編自Best方法,用於檢查列表是否為空

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM