Проверьте, все ли значения в итерируемой форме на питоне
В настоящее время я делаю это:
if x in a and y in a and z in a and q in a and r in a and s in a:
print b
Есть ли более питонический способ выражения этого выражения if?
Ответ 1
Использование функции all позволяет написать это красивым и компактным способом:
if all(i in a for i in (x, y, z, q, r, s)):
print b
Этот код должен делать почти то же, что и ваш пример, даже если объекты не хешируются, или если объект a имеет какой-то забавный метод __contains__. Функция all также похожа на короткое замыкание как цепочку and в исходной задаче. Сбор всех объектов, подлежащих тестированию в кортеже (или списке), гарантирует тот же порядок выполнения тестов, что и исходная проблема. Если вы используете набор, порядок может быть случайным.
Ответ 2
Другой способ сделать это - использовать подмножества: