Решение
new_array ={}
for i in topics:
for k in topic_dic:
if i in str(topic_dic[k]):
print(f"{i} located in {k}")
if k not in new_array:
new_array[k] = [i]
elif k in new_array:
[v.append(i) for v in new_array.values()]
print(new_array)
Обновлено решение, включающее создание нового словаря с найденными key
и value
, но не уверен, что это то, что вы имели в виду, сохраняя key
в новом массиве. Если бы вы могли быть более конкретны с желаемым форматом вывода, это помогло бы.
Выход
(xenial)vash@localhost:~/python/AtBS$ python3.7 loop_info.py
real located in Sports
messi located in Sports
pogba located in Sports
play located in Sports
{'Sports': ['real', 'messi', 'pogba', 'play']}
Вот также более удобный для чтения формат вашего словаря
topic_dic = {
'Sports': [
'play','football','cricket','ball','FIFA','Basketball','Referee',
'Sachin Tendulkar','messi','ronaldo','EPL','manchester united',
'real Madrid','juventus','contract','paul pogba','Barcelona','transfer'
],
'Politics': [
'Barack Obama','Donald Trump','Prime Minister','PM', 'President',
'BJP','Amit Shah','Lok Sabha','Election','Modi','Government',
'Supreme Court','SC','India','USA','Offical','Court','Legal',
'Judgement'
],
'Science': [
'NASA','Space','James Webb Space','Telescope','Alien','Dawn',
'Mission','Galaxy','Habitat','Magnet','Wave','Thermals','Temperature',
'Orbit','Neutrons','Mass','Discovery'
],
'Social Entertainment': [
'Music','Dance','Singing','Concert','Audio','Playback',
'Competition','Movie','Drama','Theatre'
],
'General Topics': [
'Celebrity','Culture','Society','Business','Development','Country'
]
}
topics = ['real','retirement','moment,','messi','pogba','play']