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

看板Python作者 (阿真)時間13年前 (2012/03/09 12:27), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《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: 140.112.63.202
文章代碼(AID): #1FMOQPbq (Python)
文章代碼(AID): #1FMOQPbq (Python)