16

w、x、y、および z のすべてがリスト A に含まれているとします。xのみが含まれていることを確認するためのショートカットはありますか? 他の変数を否定せずに?

w、x、y、および z はすべて単一の値です (リスト、タプルなどではありません)。

4

8 に答える 8

29
A=[w,y,x,z]
all(p == x for p in A)
于 2012-08-31T21:35:29.750 に答える
19

それ、またはループを処理したくない場合:

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

and a空のリストと照合するために追加されます)

于 2012-08-31T22:21:36.440 に答える
4

これは、他の変数を参照せずに、すべてelementの sAが等しいことを確認します。x

all(element==x for element in A)
于 2012-08-31T21:38:41.950 に答える
4

リスト内のすべてのアイテムがハッシュ可能である場合:

set(A) == set([x])
于 2012-08-31T21:39:08.597 に答える
4
{x} == {w,x,y,z} & set(A)

これは、 と のすべての[w,x,y,z]アイテムAがハッシュ可能である場合に機能します。

于 2012-08-31T21:40:05.540 に答える
1

他の変数を否定しないことが何を意味するのかわかりませんが、これがあなたが望んでいることだと思います:

if all(item == x for item in myList): 
    #do stuff
于 2012-08-31T21:39:17.067 に答える
1

別の方法を次に示します。

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

すでに述べた多くのこと。

于 2012-08-31T21:56:54.077 に答える
0

この質問には 2 つの解釈があります。

まず、[w,y,z] に含まれる x の値です。

>>> 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
于 2012-08-31T21:57:18.787 に答える