Re: [問題] 請問一個dict取值問題
※ 引述《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
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章