我需要分析的字典對於包括兩個給定數字之間的數(作爲參數)值之間的值的密鑰,並返回通過鍵搜索在字典具有兩個數
字典前面那些值:
{'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] –