Re: [問題] 請問一個dict取值問題

看板Python作者 (想辦法突破)時間13年前 (2012/03/09 13:36), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
感謝你的回答 這個概念的確很有幫助 可是我現在卡在 我無法讓這個語法正確執行 Traceback (most recent call last): File "d.py", line 232, in <module> cmd_diff() File "d.py", line 84, in cmd_diff if b.key > int(a): AttributeError: 'int' object has no attribute 'key' 以上是我執行之後的一個錯誤訊息 是不是因為搞錯了OrderedDict的結構呢? 我試了幾次也沒能成功... ※ 引述《KSJ (阿真)》之銘言: : ※ 引述《kadodo (想辦法突破)》之銘言: : : A = ['7', '15', '18'] : : B = OrderedDict([(1, 'apple'), (4, 'water'), (9, 'soap'), : : (10, 'sugar'), (12, 'rice'), (13, 'baby'), : : (14, 'boy'), (20, 'girl')]) : : 請問要如何得到一個 dict (C) 的結果是 : : C = {} : : C = {'7':'water', '15':'boy', '18':'boy'} : : 也就是說 : : 4 < 7 < 9 ==> '7':'water' (B['4']) : : 14 < 15 < 20 ==> '15':'boy' (B['14']) : : 14 < 18 < 20 ==> '18':'boy' (B['14']) : : 要怎麼寫一個可以處理任意A或任意B 我都可以得到一個C的CODE呢? : : 請各位提供意見 感謝~~ : B不是用整數當key嗎??@@a 上面寫是用字串 : C={} : for a in A: : for idx,b in enumerate(B): : if b.key > int(a): : C[a] = B[idx-1].value : break : 以上是個概念 : orderdict 看起來是可以排序KEY的dict 所以我猜找它前一個key的值應該是可以的 : 所以找第一個超過a值的b的index 再寫入前一個index的b值 然後再找下一個a : 如果不行用index的話 可以記錄 前一筆小於 後一筆大於的時候再填入前一筆的值 : 如果我有什麼誤解再跟我說 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 192.203.57.28
文章代碼(AID): #1FMPRq39 (Python)
討論串 (同標題文章)
文章代碼(AID): #1FMPRq39 (Python)