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

Python根据用户选择的配置项填充目标字典的方法

多语言菜单快捷键填充实现

原始数据

以下数据均从CSV文件读取获取:

language = {"english" : {"item1":"File","item2":"Accounts"},
            "tamil"   : {"item1":"கோப்பு","item2":"கணக்கியல்"},
            "Hindi"   : {"item1":"Hindi_File","item2":"Hindi_accounts"}}

scut = {"user1":[{"id":"file","scut":"Alt+F"},{"id":"accounts","scut":"F5"}],
        "user2":[{"id":"file","scut":"Ctrl+F"},{"id":"accounts","scut":"F8"}]}

menu = {"lbl01":{"id":"file","item1":"","item2":"","scut":""},
        "lbl02":{"id":"accounts","item1":"","item2":"","scut":""}}

selection = ["english","tamil"]
user = ["user1"]

需求说明

基于上述数据按规则填充menu字典,得到如下预期结果:

result = {"lbl01":{"id":"file","item1":"File","item2":"கோப்பு","scut":"Alt+F"},
          "lbl02":{"id":"accounts","item1":"Accounts","item2":"கணக்கியல்","scut":"F5"}}

填充规则:

  • selection列表按顺序存储用户选中的第一语言、第二语言,对应填充菜单项的item1、item2多语言文本
  • user列表存储当前登录用户,需匹配该用户设置的功能快捷键,填充到菜单项的scut字段,匹配依据为菜单项的id
  • 最终输出结构和原menu字典完全一致,仅替换空字段为对应值

实现代码

# 预处理:构建当前用户的功能ID-快捷键映射,避免重复遍历查询
current_user = user[0]
shortcut_map = {item["id"]: item["scut"] for item in scut[current_user]}
# 获取选中的两种目标语言
lang1, lang2 = selection

result = {}
for label, entry in menu.items():
    # 从lbl编号提取对应语言文本的key,如lbl01对应item1、lbl02对应item2
    item_num = label[3:].lstrip("0")
    lang_key = f"item{item_num}"
    result[label] = {
        "id": entry["id"],
        "item1": language[lang1][lang_key],
        "item2": language[lang2][lang_key],
        "scut": shortcut_map[entry["id"]]
    }

代码运行后输出的result和预期结果完全一致,只要保持原有数据格式规范,可直接扩展支持更多菜单项、语言、用户快捷键配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:06:48