Python如何修改字典键值对顺序 将末尾键值对移至首位
注意:Python 3.7及以上版本的字典默认保留插入顺序,低于该版本的字典为无序结构,调整键值对排列顺序没有实际意义。
实现方案
以下两种方法都可以实现把字典最后一个键值对移动到首位的需求:
方法1:键值对列表切片重组(推荐,不修改原字典)
直接把字典的键值对转换成列表,通过切片把最后一个元素移到列表头部,再重新转换为字典即可,逻辑直观不会改动原始字典。
d = {1 : 'a', 2 : 'b', 3 : 'c'} items = list(d.items()) # 拼接调整后的键值对顺序 new_items = [items[-1]] + items[:-1] new_d = dict(new_items) # new_d 输出结果:{3: 'c', 1: 'a', 2: 'b'}
方法2:弹出末尾元素重构字典
使用字典内置的popitem()方法(3.7+版本遵循后进先出规则,默认弹出最后一个键值对),弹出末尾元素后重构字典,把弹出的键值对放在最前面即可。
注意:该方法会直接修改原始字典,如果需要保留原字典请先做拷贝操作。
d = {1 : 'a', 2 : 'b', 3 : 'c'} # 弹出最后一个键值对 last_key, last_val = d.popitem() # 重组字典,把弹出的键值对放在首位 d = {last_key: last_val, **d} # d 输出结果:{3: 'c', 1: 'a', 2: 'b'}
如果需要保留原字典,只需要在操作前加一句d_copy = d.copy(),后续操作针对d_copy执行即可。
内容的提问来源于stack exchange,提问作者lzvtmtvv
相关产品推荐
相关产品推荐

