Python/Django Проверить, есть ли объект в 2 списках
Профили имеют теги. Я представляю список profile_tags
а также top_tags
, Как мне проверить, есть ли каждый тег в top_tags в profile_tags?
Что я пробовал в моих взглядах:
has_tag = False
profile_tags = profile.tags.all()
top_tags = Tag.objects.all()
for top in top_tags:
if top in profile_tags:
has_tag = True
Заранее спасибо за вашу помощь!
2 ответа
Решение
Ты можешь сделать:
has_tag = set(list(top_tags)).issubset(list(profile_tags))
Это дает вам логический флаг.
Конвертируйте их в наборы и проверьте, top_tags
это подмножество множества profile_tags
:
In [14]: profile_tags=[1,2,3,4]
In [15]: top_tags=[1,2,3]
In [16]: s1=set(profile_tags)
In [17]: s2=set(top_tags)
In [18]: s2.issubset(s1)
Out[18]: True