Python 基于另一个字典中的整数值,使用匹配键从字典列表值中随机采样

Python 基于另一个字典中的整数值,使用匹配键从字典列表值中随机采样,python,dictionary,random,Python,Dictionary,Random,我有两本词典,其中一本词典列出了随机抽样的项目: candidates_to_sample_from = {'PCP3': ['member3', 'member12', 'member17'], 'PCP4': ['member14', 'member15', 'member16']} 另一个具有匹配的密钥和要从中提取并最终从成员池中删除的样本数: sample_counts = Counter({'PCP3': 2, 'PCP4': 1}) 我尝试了两种方法,但没有达到我预期的效果。一

我有两本词典,其中一本词典列出了随机抽样的项目:

candidates_to_sample_from = {'PCP3': ['member3', 'member12', 'member17'],
 'PCP4': ['member14', 'member15', 'member16']}
另一个具有匹配的密钥和要从中提取并最终从成员池中删除的样本数:

sample_counts = Counter({'PCP3': 2, 'PCP4': 1})
我尝试了两种方法,但没有达到我预期的效果。一种方法是:

for prov, lst in candidates_to_sample_from.items():
    for i, j in sample_counts.items():
        candidates_out = random.sample(lst, j)

print(candidates_out)
['member16']
这只会从候选项到样本项中的第二项中产生1个被选中的人,而不会从第一项中产生两个应该被选中的人

然后,我还尝试创建一个空列表并附加到它:

candidates_out = []

for prov, lst in candidates_to_sample_from_dict.items():
    for i, j in sample_counts.items():
        candidates_out.append(random.sample(lst, j))

print(candidates_out)
[['member3', 'member12'], ['members17'], ['member16', 'member14'], ['member16']]
我只是想得到一个简单的列表,比如:

candidates_out = ['member3', 'member17', 'member15']
这有两个从第一项到第二项的候选项和样本项。这是一个较小的模型,无论字典的大小和范围如何,它都应该工作相同

candidates_out = []
for k, v in sample_counts.items():
    candidates_out += random.sample(candidates_to_sample_from[k], v)