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

如何修改字典值并基于工位动态为字典元素添加指定后缀?

如何动态修改字典中的值以扩展员工工位信息

你想要给特定工位的员工信息加上-A后缀来区分门店,同时不想硬编码固定值,对吧?你的现有代码只是直接把原字典内容复制后输出,没有做任何修改操作,所以达不到期望效果。我来给你调整代码,同时保留灵活扩展的空间:

解决方案代码

a_dict = {'A': [['LA', 'Sallys', 'Associate '], ['Hollywood', 'Tonys', 'Shelf'], ['Compton', 'Sally', 'Shelves']],
          'B': [['SAC', 'Sallys', 'Associate '], ['Townsland', 'Tonys', 'Shelf'], ['Compton', 'Tiffanys', 'Shelves']]}

# 定义目标工位和后缀,后续修改只需改这里,不用动遍历逻辑
target_station = "Shelves"
suffix = "-A"

# 遍历字典中的每一组员工数据
for key, employee_list in a_dict.items():
    # 逐个处理每个员工的工位信息
    for employee in employee_list:
        # 先去除工位字符串的前后空格,避免原数据的空格导致匹配失败
        if employee[2].strip() == target_station:
            employee[2] = f"{employee[2].strip()}{suffix}"
    # 输出处理后的分组数据
    print(employee_list)

代码解释

  • 我把需要匹配的工位和要添加的后缀单独定义成变量,这样以后如果要修改目标工位(比如改成Shelf)或者后缀(比如改成-B),直接改这两个变量就行,完全不用碰遍历逻辑,避免了硬编码的问题。
  • 使用a_dict.items()可以同时拿到字典的键和对应的员工列表,比你原来单独遍历键再取值的方式更清晰高效。
  • 处理工位时用strip()是因为原数据里有带空格的工位(比如'Associate '),这样可以避免因为空格导致匹配不上的问题。
  • 运行这段代码后,你会得到完全符合期望的输出:
    [['LA', 'Sallys', 'Associate '], ['Hollywood', 'Tonys', 'Shelf'], ['Compton', 'Sally', 'Shelves-A']]
    [['SAC', 'Sallys', 'Associate '], ['Townsland', 'Tonys', 'Shelf'], ['Compton', 'Tiffanys', 'Shelves-A']]
    

进阶:保留原字典数据的版本

如果你不想修改原有的a_dict,而是要把处理后的数据存到b_dict里,可以用这个版本:

a_dict = {'A': [['LA', 'Sallys', 'Associate '], ['Hollywood', 'Tonys', 'Shelf'], ['Compton', 'Sally', 'Shelves']],
          'B': [['SAC', 'Sallys', 'Associate '], ['Townsland', 'Tonys', 'Shelf'], ['Compton', 'Tiffanys', 'Shelves']]}
b_dict = {}
target_station = "Shelves"
suffix = "-A"

for key, employee_list in a_dict.items():
    processed_list = []
    for emp in employee_list:
        # 复制原员工信息列表,避免修改原字典的数据
        emp_copy = emp.copy()
        if emp_copy[2].strip() == target_station:
            emp_copy[2] = f"{emp_copy[2].strip()}{suffix}"
        processed_list.append(emp_copy)
    b_dict[key] = processed_list

# 输出b_dict中的处理后数据
for group in b_dict.values():
    print(group)

这个版本会把处理后的结果存在b_dict里,原a_dict的数据完全不受影响,适合需要保留原始数据的场景。

内容的提问来源于stack exchange,提问作者TheSLYnSmoothOne

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 16:52:30