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

Python中如何为字典各键的列表分配唯一值?

问题与解决方案

输入数据

data = {23: ['WA', 'NV', 'AZ', 'OH'], 24: ['NV', 'OH'], 25: ['NV', 'OH']}

期望输出

需要得到每个键对应唯一值的字典:

{23: ['WA'], 24: ['NV'], 25: ['OH']}

当前错误输出

现有get_unique_states函数输出不符合预期:

{23: ['NV', 'AZ', 'WA', 'OH'], 24: ['NV'], 25: ['NV']}

需求说明

  • 每个字典键对应一个唯一的州元素
  • 若后续键没有未被使用的新元素,需沿用首个键对应的元素

修正后的代码

def get_unique_states(data):
    # 收集所有不重复的州,按首次出现顺序保存
    all_unique_states = []
    seen_states = set()
    for states_list in data.values():
        for state in states_list:
            if state not in seen_states:
                seen_states.add(state)
                all_unique_states.append(state)
    
    result_dict = {}
    state_index = 0
    # 获取首个键对应的元素,备用
    default_state = all_unique_states[0] if all_unique_states else []
    
    for key in data.keys():
        if state_index < len(all_unique_states):
            result_dict[key] = [all_unique_states[state_index]]
            state_index += 1
        else:
            result_dict[key] = [default_state]
    
    return result_dict

# 测试验证
data = {23: ['WA', 'NV', 'AZ', 'OH'], 24: ['NV', 'OH'], 25: ['NV', 'OH']}
print(get_unique_states(data))

运行上述代码,输出将与期望结果一致:{23: ['WA'], 24: ['NV'], 25: ['OH']}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 19:18:20