字典对比与更新:将dict1列表右移并按dict2补全首元素
字典列表右移并替换首元素实现
需求说明
给定两个字典dict1和dict2,对dict1中每个键对应的列表执行以下操作:
- 将列表右移一位(移除最后一个元素,保留前n-1个元素)
- 在列表开头添加新元素:若
dict2存在相同键,使用其对应值;否则用0.0 - 保持每个列表的长度与原列表一致
原始字典
dict1 = { 'a': [67.0, 24.0, 45.0, 45.0, 45.0, 23.0, 21.0, 45.0], 'b': [0.9, 0.5, 9.0, 4.5, 54.0, 0.0, 0.0, 0.0], 'c': [1.0, 5.0, 40.0, 30.0, 20.0, 0.0, 10.0, 50.0], 'd': [60.0, 80.0, 56.0, 34.0, 78.0, 13.0, 0.0, 70.0] } dict2 = {'a': 0.897,'c': 3.4, 'd': 34.567}
解决方案代码
# 遍历处理每个键的列表 for key, lst in dict1.items(): # 获取要插入的首元素 first_val = dict2.get(key, 0.0) # 拼接新列表:首元素 + 原列表去掉最后一个元素 dict1[key] = [first_val] + lst[:-1] # 输出处理后的dict1 print(dict1)
代码说明
dict2.get(key, 0.0):快速处理键存在/不存在的情况,存在则返回对应值,不存在返回0.0lst[:-1]:截取原列表除最后一个元素外的所有元素,实现“右移一位”的效果- 拼接后的新列表长度和原列表完全一致,满足需求
处理后结果
{'a': [0.897, 67.0, 24.0, 45.0, 45.0, 45.0, 23.0, 21.0], 'b': [0.0, 0.9, 0.5, 9.0, 4.5, 54.0, 0.0, 0.0], 'c': [3.4, 1.0, 5.0, 40.0, 30.0, 20.0, 0.0, 10.0], 'd': [34.567, 60.0, 80.0, 56.0, 34.0, 78.0, 13.0, 0.0]}
内容的提问来源于stack exchange,提问作者EngGu
相关产品推荐
相关产品推荐

