По сути, вам нужно «перевернуть» словарь со значениями list
в другой словарь со значениями list
.
Я абстрагировался от фактических данных твита, поскольку это могло бы скрыть фактический ответ проблемы.
Жадная реализация может быть:
import collections
def reverse_dict(input):
output = collections.defaultdict(list)
for key, val in input.items():
for item in val:
output[item].append(key)
return output
def main():
input = {
'u123': ['hello', 'world'],
'u456': ['hello', 'you'],
'u789': ['you', 'world'],
}
output = reverse_dict(input)
print output
if __name__ == '__main__':
main()
Как сказал @Michael Butscher, ожидаемый вывод вашего вопроса не является допустимым словарем Python. Вышеприведенный код выведет:
{'world': ['u789', 'u123'], 'you': ['u789', 'u456'], 'hello': ['u456', 'u123']}
Кроме того, как ответил @Austin, решение этой проблемы с использованием "грубой силы" не обязательно будет лучшим решением.