作者kadodo (想办法突破)
看板Python
标题Re: [问题] 请问一个dict取值问题
时间Fri Mar 9 13:36:49 2012
感谢你的回答 这个概念的确很有帮助
可是我现在卡在 我无法让这个语法正确执行
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