Pythonでは、リスト内のすべての値が互いに等しいことをテストする簡単な方法ですか?すべてのリストの値が同じ
17
A
答えて
39
多くの方法が考えられます。 編集:別のポスターが記載されているので、これはハッシュ可能型でのみ機能します。パフォーマンスが悪いので、私は提案を取り消しますとはそれほど一般的ではありません。set
(重複を除外する)でそれをオンにし、1の長さを確認することができます
ジェネレータ式all(items[0] == item for item in items)
を使用すると、短絡する可能性があります(つまり、実行されずに項目の述語が失敗するとすぐにfalseを返します)。
3
11
>>> a = [1, 1, 1, 1]
>>> len(set(a))
1
この方法では、リスト内の各要素をセットに配置できると想定しています。変更可能な型など、一部の型はセットに配置することはできません。
1
set
をGreg Hewgillによって指摘されたものを使用することは素晴らしい解決策です。別のものがもっと怠けているので、要素の1つのペアが等しくない場合、残りは比較されません。これは、すべてのアイテムを比較するときにはset
ソリューションよりも遅いかもしれませんが、ベンチマークは行いませんでした。
l = [1, 1, 1]
all(l[i] == l[i+1] for i in range(len(l)-1))
特殊ケースall([]) == True
に注意してください。
関連する問題
- 1. 同じカテゴリのすべての記事を同じリストに表示する
- 2. C#リスト内のすべての項目のフィールドを同じ値に設定
- 3. すべてのシステムで製品のアンインストールキー値が同じです
- 4. 入力ボックスの値がすべて同じです
- 5. すべての列フィールドに同じ値があります。yii2
- 6. リストのすべての項目は同じですか?
- 7. すべてのボタンの幅が同じ
- 8. 2つのリスト(ペア)の同じ値
- 9. Python:リスト内の同じ値のインデックス
- 10. すべての文字が同じフォント
- 11. すべてのキーボードでスキャンコードが同じ
- 12. cssリスト項目すべての解像度で同じマージン
- 13. リストに同じ名前のXML値
- 14. リストのリストで同じ値を持つすべてのアイテムを取得する方法C#LINQ?
- 15. Excel - 同じ列の値が同じ行の列を同じ行の列に並べ替えます。
- 16. すべてのキーと値のペアの同じキーですか?
- 17. すべての値が同じ場合に重複値を削除します
- 18. 対応するすべてのフィーチャの同じフィーチャ値
- 19. すべてのインデックスで同じ値を返す配列
- 20. PRNGはすべてのプロセスで同じ値を返します
- 21. すべてのファミリに同じ値を出力します
- 22. すべてのプログラムで同じ値を返すglGetUniformLocation
- 23. 動的なngrepeatの作成 - すべてのhref値が同じです
- 24. Objective-C:すべての配列要素の値が同じです
- 25. すべての座標が同じ値を持つのはなぜですか?
- 26. 同じ名前のすべての名前付きリストに値を動的に割り当てます。
- 27. 同じ行のすべてのリンク
- 28. リンクリスト内のすべての値を指定した値と同じにする
- 29. python dict、リストはすべてのクラスで同じインスタンスを持っています
- 30. リストアイテムのインデックス値を同じリストのすべてのインデックスと比較するには
+1 map comprehensionsをmap()よりも使用することをお勧めします。 –
@Artanis:それはリストの理解ではない - その理由は、 'set'ソリューションよりも優れている;) – delnan
ありがとう!これはシンプルで甘いです! – derks