def translate(cities, tags, kwargs):
return {'city': cities[int(kwargs['city'])],
'tag': tags[int(kwargs['tag'])]}
Нет ясного способа (из вашего вопроса) автоматизировать выбор словаря по ключу-вспомогательному словарю, поэтому я просто жестко закодировал ключи и aux dict для каждого; если это не то, что вы хотите, пожалуйста, отредактируйте ваш вопрос, чтобы уточнить, что вы хотите ! -)
Редактировать : так, учитывая эту новую и отличную от ОП спецификацию:
# Now new_keywords is {'city': '3', 'tag': '2,3'}
# I WANT TO BE LIKE THIS
#new_keywords is {'city': 'Phnom Penh', 'tag': 'public,private'}
решение становится:
def commaplay(adict, value):
return ','.join(adict[int(x)] for x in value.split(','))
def translate(cities, tags, kwargs):
return {'city': commaplay(cities, kwargs['city']),
'tag': commaplay(tags, kwargs['tag'])}
Конечно, если ОП снова полностью изменит свои спецификации, решение изменится еще раз в ответ (не будет ли невероятно великим , если люди скажут, что они имели в виду, и означали то, что они сказали , вместо того, чтобы постоянно крутить вещи?! -).