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
Другие вопросы по тегам