1. ホーム
  2. python

[解決済み] Python: リストのすべての項目が同じ項目かどうかを判断する [duplicate] (重複)

2023-07-01 01:28:12

質問

私のコードの一部では、一連のオブジェクトをリストに入れ、それらの属性(文字列)から追加のリストを構築しています。私は、この2番目のリストのすべての項目が、それがどの値であるかを事前に知ることなく、まったく同じ値を持っているかどうかを決定し、その結果に応じて私のコードで異なることを行うことができるように、boolを返す必要があります。

私は事前にプロパティの名前を知ることができないので、可能な限り汎用的なものを作ろうとしているわけです。

例をわかりやすくするために、"all_same"という理想的な関数は、次のように動作します。

>>> property_list = ["one", "one", "one"]
>>> all_same(property_list)
True
>>> property_list = ["one", "one", "two"]
>>> all_same(property_list)
False

ユニークな要素のリストを作って、その長さが1かどうかをチェックすることを考えていたのですが、それが最もエレガントな解決策かどうかはわかりません。

どのように解決するのですか?

def all_same(items):
    return all(x == items[0] for x in items)

>>> def all_same(items):
...     return all(x == items[0] for x in items)
...
>>> property_list = ["one", "one", "one"]
>>> all_same(property_list)
True
>>> property_list = ["one", "one", "two"]
>>> all_same(property_list)
False
>>> all_same([])
True