非空值我有一个字典是这样的:查找字典
d = {'first':'', 'second':'', 'third':'value', 'fourth':''}
,我想找到第一个非空值(和它的名字,在这个例子中'third'
)。可能有多个非空值,但我只想要找到第一个。
我该怎么做?
非空值我有一个字典是这样的:查找字典
d = {'first':'', 'second':'', 'third':'value', 'fourth':''}
,我想找到第一个非空值(和它的名字,在这个例子中'third'
)。可能有多个非空值,但我只想要找到第一个。
我该怎么做?
你可以使用next
(字典是无序的 - 这在Python 3.6有所改变,但这只是一个实现细节目前)得到一个“不空”键 - 值对:
>>> next((k, v) for k, v in d.items() if v)
('third', 'value')
使用的OrderedDict
这保留了元素的顺序。然后循环它们,找到第一个不是空的:
from collections import OrderedDict
d = OrderedDict()
# fill d
for key, value in d.items():
if value:
print(key, " is not empty!")
d = {'first':'', 'second':'', 'third':'value', 'fourth':''}
for k, v in d.items():
if v!='':
return k, v
编辑1
from the comment
如果值是None
或''
我们更好地利用if v:
代替if v!=''
。 if v!=''
只检查''
并跳过其他人
你可以键入'if v:'以防万一v在' {}'或'None'或'''' – GeekyMo
@MohammadHoseinBin,是的。你是对的。我知道了。 –
当你说“第一个”时:你知道字典是无序的吗? – MSeifert
@ MSeifert是的,该列表是例如,我知道字典没有排序。 – GeekyMo