从字典中仅选择具有值的键

时间:2018-08-29 09:19:52

标签: python-3.x

我的字典很长

mydict = {
    "6574": [],
    "3234": [1],
    "7014": [],
    "0355": [3],
    "1144": [2],
    # …
}

我需要获取所有具有非空列表的密钥。

mytruedict = {}
for k, v in mydict.items():
    if v:
        mytruedict[k]=v

我想知道是否有一种单行方法。

1 个答案:

答案 0 :(得分:3)

使用dict

例如:

mydict = {
    "6574": [],
    "3234": [1],
    "7014": [],
    "0355": [3],
    "1144": [2]
}

print( dict((k, v) for k, v in mydict.items() if v) )
#or
print( {k: v for k, v in mydict.items() if v } )   #dict comprehension

输出:

{'3234': [1], '1144': [2], '0355': [3]}