Список Python для побитовых операций

Есть ли способ получить список выражений запросов django (например, Q (first_name = "Jordan") , где Q is django.db.models.Q ) и побитовое ИЛИ их вместе?

Другими словами, у меня есть что-то вроде этого:

search_string = "various search terms"

И я хочу сделать это:

search_params = [Q(description__icontains=term) for term in re.split(r'\W', search_string)]
search_params = something_magical(search_params)
results = Record.objects.filter(search_params)

где search_params теперь эквивалентно Q (description__icontains = "different") | Q (description__icontains = "search" | Q (description__icontains = "terms"

Я знаю, что это было бы возможно с такой функцией:

def something_magical(lst):
    result = lst[0]
    for l in lst[1:]
        result |= l
    return result

Так что мне интересно, встроена ли эта функция в Python (а я ' m предполагая, что он более оптимизирован, чем моя функция здесь).

Хотя меня это интересует для этого приложения, меня это интересует только теоретически.

9
задан Jordan Reiter 17 January 2012 в 23:25
поделиться