我的词典myDict包含以下内容和值
myDict:
{u'E1': (u'disabled', u'10G-CR'),
u'E10': (u'notconnect', u'NP'),
u'E11': (u'notconnect', u'NP'),
u'E12': (u'connected', u'10G-CR')
我想将搜索过滤器的值定义为'notconnect'。
因此输出
u'E10': (u'notconnect', u'NP')
u'E11': (u'notconnect', u'NP')
由于
答案 0 :(得分:0)
首先,字典的语法不正确。请参阅Dictionaries
In [39]: myDict = {u'E1': (u'disabled', u'10G-CR'),
u'E10': (u'notconnect', u'NP'),
u'E11': (u'notconnect', u'NP'),
u'E12': (u'connected', u'10G-CR')}
In [40]: expectedResult = [{d:myDict[d]} for d in myDict if myDict[d][0] == "notconnect"]
In [41]: expectedResult
Out[41]: [{u'E11': (u'notconnect', u'NP')}, {u'E10': (u'notconnect', u'NP')}]
答案 1 :(得分:0)
这是一种方法。创建包含notconnect
的密钥列表。您可以使用它来执行以后需要的查找。
>>> filter(lambda key: d[key][0] == 'notconnect', d.keys())
[u'E11', u'E10']
或者,使用词典理解返回过滤后的子词典。
>>> print {key : value for key, value in d.items() if value[0] == 'notconnect'}
{u'E11': (u'notconnect', u'NP'), u'E10': (u'notconnect', u'NP')}