Re: [問題] 請問一個dict取值問題
感謝你的回答 這個概念的確很有幫助
可是我現在卡在 我無法讓這個語法正確執行
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
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章