You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

字典对比与更新:将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.0
  • lst[:-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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 08:06:18