>>> od=MyOD(zip(['a', 'b', 'c'], [1, 2, 3]))
>>> for i, k in enumerate(od):
... if i==1:
... od[k]=1
...
>>> od
OrderedDict([('a', 1), ('b', 1), ('c', 3)])
如果您想要一个方法来实现这一点,只需子类OrderedDict:
class MyOD(OrderedDict):
def update_pos(self, pos, val):
for i, k in enumerate(self):
if i==pos:
self[k]=val
return
>>> od=MyOD(zip(['a', 'b', 'c'], [1, 2, 3]))
>>> od
MyOD([('a', 1), ('b', 2), ('c', 3)])
>>> od.update_pos(1, 22)
>>> od
MyOD([('a', 1), ('b', 22), ('c', 3)])
可以为现有元素就地更新有序dict,而不更改顺序:
如果您想要一个方法来实现这一点,只需子类OrderedDict:
这很简单-只要使用
od[od.keys()[x]] = y
这也适用于字典(尽管这毫无意义)。代码只需获取orderedDict键的
list
,然后从列表中的所需位置获取条目,然后将该字符串用作原始orderedDict的键。相关问题 更多 >
编程相关推荐