Проверьте, содержит ли список только элемент x

Скажем, что все w, x, y и z могут быть в списке A. Есть ли ярлык для проверки того, что он содержит только x - например. без отрицания других переменных?

w, x, y и z - все одиночные значения (не списки, кортежи и т.д.).

Ответ 1

A=[w,y,x,z]
all(p == x for p in A)

Ответ 2

Это, или если вы не хотите иметь дело с циклом:

>>> a = [w,x,y,z]
>>> a.count(x) == len(a) and a

(and a добавлен для проверки пустого списка)

Ответ 3

Это проверяет, что все element в A равны x без ссылки на любые другие переменные:

all(element==x for element in A)

Ответ 4

Если все элементы в списке хешируются:

set(A) == set([x])

Ответ 5

{x} == {w,x,y,z} & set(A)

Это будет работать, если все [w,x,y,z] и элементы в A являются хешируемыми.

Ответ 6

Я не уверен, что без отрицания других переменных, но я подозреваю, что это то, что вы хотите:

if all(item == x for item in myList): 
    #do stuff

Ответ 7

Вот еще один способ:

>>> [x] * 4 == [x,w,z,y]

многих уже заявленных.

Ответ 8

В этом вопросе есть две интерпретации:

Во-первых, это значение x, содержащееся в [w, y, z]:

>>> w,x,y,z=1,2,3,2
>>> any(x == v for v in [w,y,z])
True
>>> w,x,y,z=1,2,3,4
>>> any(x == v for v in [w,y,z])
False

Или это может означать, что они представляют один и тот же объект:

>>> w,x,y,z=1,2,3,4
>>> any(x is v for v in [w,y,z])
False
>>> w,x,y,z=1,2,3,x
>>> any(x is v for v in [w,y,z])
True