重複の可能性:
リスト内のすべての要素が同一であるかどうかを確認します
リストのすべての要素が等しいかどうかを確認したいと思います。私はこれを行うことができませんでした:
if all (x == x for x in (a, b, c, d)):
...
Pythonでこれを行うための非常にミニマルでエレガントな方法はありますか?
重複の可能性:
リスト内のすべての要素が同一であるかどうかを確認します
リストのすべての要素が等しいかどうかを確認したいと思います。私はこれを行うことができませんでした:
if all (x == x for x in (a, b, c, d)):
...
Pythonでこれを行うための非常にミニマルでエレガントな方法はありますか?
リストにハッシュ可能な要素しかない場合は、セットを使用できます。
たとえば、リストに名前が付けられている場合、次のlst
ことができます。
if (len(set(lst)) <= 1):
....
セットはリスト内のすべての重複を排除するため、セットの長さが1の場合、すべての要素が同じであることを意味します。
all(x == items[0] for x in items)
これはあなたが探しているものです。
そうしないとx==x
、すべての値を最初の値と比較するのではなく、すべての値をそれ自体と比較することになります。
first = my_list[0]
print all(x==first for x in my_list[1:])
動作するはずです
もっとエレガントかもしれません...(私は本当にそうは思いません...)
>>> if reduce(lambda item0,item1:item0 if item0==item1 else False,my_list) is not False:
... print "OK ALL THE SAME!"
...
OK ALL THE SAME!
ここで回答し、パフォーマンスベンチマークを使用
お気に入り :lst[1:] == lst[:-1]