我需要分析的字典对于包括两个给定数字之间的数(作为参数)值之间的值的密钥,并返回通过键搜索在字典具有两个数
字典前面那些值:
{'P':[("Eight",1460, 225.0, 200.0, "fresco","Netherlands"),("Six",1465,81.0, 127.1, "tempera", "Netherlands")],
'V':[("Four",1661, 148.0, 257.0,"oil paint", "Austria"),("Two",1630, 91.0, 77.0, "oil paint","USA")],
'K':[("Five",1922,63.8,48.1,"watercolor","USA"),("Seven",1950,61.0,61.0,"acrylic paint","USA"),("Two",1965,81.3,100.3,"oil paint","United Kingdom")],
'C':[("Ten",1496,365.0,389.0,"tempera","Italy")],
'U':[("Nine",1203,182.0, 957.0,"egg tempera","Italy"), ("Twelve",1200,76.2,101.6,"egg tempera","France")]
}
函数应该只返回两个数之间的数字存在的值。因此,如果函数被调用between_two_values应该如果1464和1496之间寻找值返回此:
between_two_values(dictionary1(), 1464, 1496)
{'P': [('Six', 1465, 81.0, 127.1, 'tempera',
'Netherlands')], 'C': [('Ten', 1496, 365.0,
389.0, 'tempera', 'Italy')]}
如果键的值的一个不具备1464年至1496年之间的数字,它不应该返回一个值并且只有在该范围内具有数字的那些数字之前有其密钥。这就是为什么在上面的'P'的例子中,有1460的第一个值没有返回,因为它不在2个数字之间。如果第一个数字大一些,函数中的第一个数字应该总是小于第二个数字,然后它应该只返回一个空字典。
这是我想出的代码我不认为它是正确的,但它显示可以解决此功能的逻辑。我感谢我收到的任何帮助
def between_two_values(dictionary,start,end):
for x in dictionary:
if end < x < start in dictionary:
return dictionary(x)
你运行你的这个代码对词典吗?任何错误消息显示? –
@melgart现在它说类型错误:无法订购的类型:int()
n00bprogrammer22
很酷,这很有用。它是说你正在试图比较苹果和橘子。好像你不确定你在between_two_values()函数中比较的是什么。你为什么不考虑在for循环之后在那里放入一些print()语句,这样你就可以看到你正在迭代的数据。请记住,Python字典有映射到值的键,你可以像这样访问字典:dictionary [x] –