我有一个类似
的词典dict1 = {'Lou': ['Male', '15', '2'],'Jen':['Female','10','3']...and more}
我试图在列表的第二部分中搜索大于14的值,然后打印出键/值。我知道我必须将字符串转换为整数,我相信我必须通过执行dict1.values方法进行迭代,但我不确定如何在列表中指定第二个值。
答案 0 :(得分:4)
您可以使用dict1.items
同时迭代键和值:
for key, value in dict1.items():
if int(value[1]) > 14:
print key, value
对于每个value
,您使用value[1]
获得第二部分,然后将其转换为int
的整数,然后执行检查。检查成功后,我们会打印密钥和值,因为我们可以访问它们。
答案 1 :(得分:2)
你可以使用dict_comprehension。
>>> dict1 = {'Lou': ['Male', '15', '2'],'Jen':['Female','10','3']}
>>> {x:y for x,y in dict1.items() if int(y[1]) > 14}
{'Lou': ['Male', '15', '2']}
答案 2 :(得分:0)
你需要使用dict.items
它会给你一个包含键/值对的元组。
使用filter
和lambda
:
>>> my_dict = {'Lou': ['Male', '15', '2'],'Jen':['Female','10','3']}
>>> filter(lambda x:int(x[1][1])>14, my_dict.items())
[('Lou', ['Male', '15', '2'])]
使用密钥:
>>> {x:my_dict[x] for x in my_dict if int(my_dict[x][1])>14}
{'Lou': ['Male', '15', '2']}