Python 从另一个字典生成子集字典

Python 从另一个字典生成子集字典,python,python-3.x,list,dictionary,mapping,Python,Python 3.x,List,Dictionary,Mapping,这是我的问题,希望有人能帮助我拥有一个我称之为全局字典的东西,在我的场景中,它是我程序中所有可能的key:values的字典 global_dict = dict(zip(legend_values_global, legend_colors_global)) 这些值看起来像这样 {1: (191, 0, 0), 2: (191, 176, 0), 3: (29, 191, 0), 5: (0, 191, 147), 6: (0, 58, 191), etc 但是现在我需要做一个字典,只包含

这是我的问题,希望有人能帮助我拥有一个我称之为全局字典的东西,在我的场景中,它是我程序中所有可能的
key:values
的字典

global_dict = dict(zip(legend_values_global, legend_colors_global))
这些值看起来像这样

{1: (191, 0, 0), 2: (191, 176, 0), 3: (29, 191, 0), 5: (0, 191, 147), 6: (0, 58, 191), etc
但是现在我需要做一个字典,只包含我需要的特定列表的值。因此,如果like
X
只有值
1
2
3
,那么我需要一个新的字典

{1: (191, 0, 0), 2: (191, 176, 0), 3: (29, 191, 0)}
我有一个名为
uniqueBins
的列表,其中包含每个迭代可能的键的元组列表

下面是我尝试过的,但我一直收到一个
关键错误

legend_colors_global = create_colors(len(legend_values_global))
        for bracket in bins:
            uniqueBins.append(tuple(sorted(set(bracket))))

        global_dict = dict(zip(legend_values_global, legend_colors_global))
        for i in range(waferNum):
            this_wafers_legend = {k: global_dict[k] for k in uniqueBins}
uniqueBins
的格式如下:

[(1,2,3)、(5,10,11)、(1,7,8)]

this\u wafers\u legend={k:global\u dict[k]表示uniqueBins中的k}

是一个失败,但我不知道为什么。任何建议都将不胜感激。

问题在于:

{k: global_dict[k] for k in uniqueBins}
uniqueBins
[(1,2,3),(5,10,11),(1,7,8)]
所以
k在uniqueBins中的
k是一个完整的
元组
,它最终是
{(1,2,3):全局的[1,2,3]}
。如果您的目标是键
1、2、3

uniqueBins = [(1, 2, 3), (5, 6, 2), (1, 3, 6)] # modified for provided data

this_wafers_legends = []
for i in uniqueBins:
    this_wafers_legends.append({k : global_dict[k] for k in i})

print(this_wafers_legends)
# [{1: (191, 0, 0), 2: (191, 176, 0), 3: (29, 191, 0)}, {5: (0, 191, 147), 6: (0, 58, 191), 2: (191, 176, 0)}, {1: (191, 0, 0), 3: (29, 191, 0), 6: (0, 58, 191)}]

不,我想看所有的“独一无二”而不仅仅是第一个iterator@JeffPernia好的,你可以这样做,威尔会更新,但还是一样的想法,你不能一次传递整个元组,你只需要做另一个for循环就可以遍历列表中的所有元组吗?@JeffPernia是的,不确定你的存储计划我做了一个例子,将所有的字典存储在一个名为
this\u wafers\u legend
的列表中,但确切地说,你必须深入一个循环