基于键的字典和列表查找

Dictionary and list lookup based on key

input_list = [
    'thissong-fav-user:ABC-chan-44-John', 
    'thissong-fav-user:type1-jsjd01-45-kelly-md', 
    'thissong-fav-user:type2-rock-45-mkr5', 
    'thissong-fav-user:type737-chan-45-fft-md', 
    'thissong-fav-user:type37-chan-45-kelly-md']
]


mainlookup = {'ABC': {'Price': '30', 'Song': 'Reggaeton', 'Type': 'Hard'},
 'JSJD': {'Price': '10', 'Song': 'Rock', 'Type': 'Hard'},
 'fft': {'Price': '1', 'Song': 'Rock', 'Type': 'Soft'},
 'mkr': {'Price': '99', 'Song': 'Jazz', 'Type': 'Hard'}}


OUTPUT_DICT = {
 'thissong-fav-user:ABC-chan-44-John': {'Price': '30',
                                        'Song': 'Reggaeton',
                                        'Type': 'Hard'},
 'thissong-fav-user:type1-jsjd01-45-kelly-md': {'Price': '10',
                                                'Song': 'Rock',
                                                'Type': 'Hard'},
 'thissong-fav-user:type2-rock-45-mkr5': {'Price': '99',
                                          'Song': 'Jazz',
                                          'Type': 'Hard'},
 'thissong-fav-user:type737-chan-45-fft-md': {'Price': '1',
                                              'Song': 'Rock',
                                              'Type': 'Soft'}}

我试过了

OUTPUT_DICT = {i: mainlookup.values() 
                  for i in input_list 
                  if mainlookup.keys() in input_list}

但得到空字典

OUTPUT_DICT = dict()
for i in mainlookup:
    for j in input_list:
        if i.lower() in j.lower():
            OUTPUT_DICT[j] = mainlookup[i]