司开星的博客

Python list 替换项、dict及 orderDict替换 key 的方式

list 替换项

1
2
index = list.index(value)
list[index] = new_value

dict 替换 key

dict的 pop()方法可以删除一个 item,之后再添加一个新的 item即可:

1
2
dict[new_key] = item[old_key]
dict.pop[old_key]

还有更简答的写法:

dict[new_key] = dict.pop(old_key)

不过 pop()方法是删除并返回该 item。如果不需要返回还可以使用 del:

1
2
dict[new_key] = item[old_key]
del dict[old_key]

注意:
如果是在循环中替换 key 会将新 key 引入循环,导致重复处理。解决方法是在循环前深拷贝 dict.keys(),循环此 list。

orderedDict 替换 key

orderedDict 是python 内置的有序 dict 类。

直接套用 dict 的 dict[new_key] = dict.pop(old_key) 方法替换 key 会导致orderedDict顺序改变。 解决方法是重新建立一个orderedDict:

new_order = OrderedDict([('__C__', v) if k == 'c' else (k, v) for k, v in old_order.items()])

参考资料:

《change key in OrderedDict without loosing order》