Python 如何洗牌和合并两个词典?

Python 如何洗牌和合并两个词典?,python,dictionary,logic,Python,Dictionary,Logic,我有两本不同长度的字典。我想洗牌两个字典,并合并它们。我在写同样的逻辑,我需要一些算法的帮助 第一条格言 a = { 'key1' : {'video1' : 'url1'}, 'key2' : {'video2' : 'url2'}, 'key3' : {'video3' : 'url3'} } 第二条 b = {'ad_video1' : 'url1', 'ad_video2' : 'url2'} 期望输出为 c = { 'key1': { 'video1'

我有两本不同长度的字典。我想洗牌两个字典,并合并它们。我在写同样的逻辑,我需要一些算法的帮助

第一条格言

a = { 
'key1' : {'video1' : 'url1'}, 
'key2' : {'video2' : 'url2'}, 
'key3' : {'video3' : 'url3'}
}
第二条

b = {'ad_video1' : 'url1', 'ad_video2' : 'url2'}
期望输出为

c = {
    'key1': {
        'video1' : 'url1',
        'ad_video1' : 'url1'

    }, 
    'key2': {
        'video2' : 'url2',
        'ad_video2' : 'url2'
    }, 
    'key3': {
        'video3' : 'url3',
        'ad_video1' : 'url1'
    }
}
我怎样才能拿到最后的合并笔录?
任何帮助都将不胜感激。

您可以使用以下步骤合并两个词典 z=x.copy() z、 更新(y)

此功能:

dct = {}
for key1,value1 in a.items():
    for key2,value2 in b.items():
        dct[key1] = value1
        if key2.endswith(key1[-1:]) and value2.endswith(key1[-1:]):
            dct.get(key1)[key2] = value2

这里有一些代码,我相信它能满足您的需求。它通过对键字符串进行排序来对字典进行排序。我们可以在
b
dict中使用循环键

输出

{'key1': {'ad_video1': 'url1', 'video1': 'url1'},
 'key2': {'ad_video2': 'url2', 'video2': 'url2'},
 'key3': {'ad_video1': 'url1', 'video3': 'url3'}}

在python中,字典是无序的,所以我不知道你把它们乱序是什么意思?为什么你希望最后的字典中出现
'ad\u video1':'url2'
?这一对没有出现在
b
中。为什么输出在
'key3'
子目录中有
'ad\u video1':'url1'
?你从哪里获得ad\u video3和url3?@PM2Ring我需要它。基本上我有两个视频列表,一个是基于健康的视频,另一个是广告的视频列表,我想在每个视频之前播放广告,所有广告都应该分配给所有基于健康的视频。我很难找到逻辑感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢感谢?总是广告1?首先,我不想匹配值,我只想随机分配广告视频。基本上我有两个视频列表,一个是基于健康的视频,另一个是广告的视频列表,我想在每个视频之前播放广告,所有广告都应该分配给所有基于健康的视频。谢谢你以前播放的广告视频总是随机的?是的,它们总是随机的。谢谢
{'key1': {'ad_video1': 'url1', 'video1': 'url1'},
 'key2': {'ad_video2': 'url2', 'video2': 'url2'},
 'key3': {'ad_video1': 'url1', 'video3': 'url3'}}