Есть ли встроенные функции для поэлементных булевых операторов по булевым спискам?

Например, если Вы имеете n списки bools той же длины, затем поэлементная булевская переменная И должны возвратить другой список той длины, которая имеет Верный в тех положениях, где все входные списки еще имеют Правда, и Ложь везде.

Довольно легко записать, я просто предпочел бы использовать встроенное, если Вы существуете (ради стандартизации/удобочитаемости).

Вот реализация поэлементных И:

def eAnd(*args):
    return [all(tuple) for tuple in zip(*args)]

использование в качестве примера:

>>> eAnd([True, False, True, False, True], [True, True, False, False, True], [True, True, False, False, True])
[True, False, False, False, True]
27
задан Amro 6 December 2014 в 16:49
поделиться

3 ответа

Нет встроенного способа сделать это. Вообще говоря, понимание списков и тому подобное - это то, как вы выполняете поэлементные операции в Python.

Numpy предоставляет это (используя и для технических ограничений) в своем типе массива. Массивы Numpy обычно выполняют операции поэлементно.

22
ответ дан 28 November 2019 в 05:15
поделиться

Нет, таких встроенных модулей нет. Ваш метод с использованием zip и all / any - это то, что я бы использовал.

1
ответ дан 28 November 2019 в 05:15
поделиться

Нет, я не верю, что в стандартной библиотеке есть такая функция ... особенно когда ее так легко написать в терминах предоставляемых функций.

1
ответ дан 28 November 2019 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: