我有一个嵌套的dict,看起来像这样:
17733124060: {'PhoneOwner': u'Bob', 'Frequency': 0},
18444320737: {'PhoneOwner': u'Sarah', 'Frequency': 1},
18444320742: {'PhoneOwner': u'Jane', 'Frequency': 0}
我希望能够运行一个查询,返回键17733124060,如果频率为0,则返回PhoneOwner Bob
到目前为止,我已经:
for phoneNumber, PhoneOwner, Frequency in dict.iteritems():
if Frequency == 0:
print phoneNumber + PhoneOwner
但是当我运行这个时,我得到一个错误:
for phoneNumber, PhoneOwner, Frequency in phoneNumberDictionary.iteritems():
ValueError: need more than 2 values to unpack
我错过了什么在哪里
您正试图将两个值(
dict.itertimes()
返回2元组)解压为3个变量。相反,您应该首先迭代外部dict,然后计算嵌套dict:您可以使用列表理解,首先构建匹配条目的列表,然后按如下方式打印它们:
这将显示以下内容:
另外,为了以防万一,不要将字典命名为
dict
,因为这是一个内置的Python函数另一种方法是使用内置方法filter,根据条件(
sub_d[Frequency]==0
)过滤字典,方法如下:相关问题 更多 >
编程相关推荐