转换Dict键并搜索它们

时间:2015-03-29 15:30:22

标签: python python-2.7

我有一个类似

的词典
dict1 = {'Lou': ['Male', '15', '2'],'Jen':['Female','10','3']...and more}

我试图在列表的第二部分中搜索大于14的值,然后打印出键/值。我知道我必须将字符串转换为整数,我相信我必须通过执行dict1.values方法进行迭代,但我不确定如何在列表中指定第二个值。

3 个答案:

答案 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它会给你一个包含键/值对的元组。

使用filterlambda

>>> 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']}