我正在使用 OrderedDict 随机访问列表,但现在想要next
我所拥有的列表中的一项:
foo = OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
apple = foo['apple']
我怎样才能只用得到香蕉foo
and apple
?
如果您可以访问 OrderedDict 实现中故意保持私有的那些部分:
>>> class MyOrderedDict(OrderedDict):
... def next_key(self, key):
... next = self._OrderedDict__map[key][1]
... if next is self._OrderedDict__root:
... raise ValueError("{!r} is the last key".format(key))
... return next[2]
... def first_key(self):
... for key in self: return key
... raise ValueError("OrderedDict() is empty")
...
>>> od = MyOrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
>>> od.next_key("apple")
'banana'
>>> od.next_key("banana")
'orange'
>>> od.next_key("orange")
'pear'
>>> od.next_key("pear")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in next_key
ValueError: 'pear' is the last key
>>> od.first_key()
'apple'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)