基于键的字典和列表查找
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]
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]