Python では、辞書、リスト、セットはいつ使用すればよいですか? 質問する

Python では、辞書、リスト、セットはいつ使用すればよいですか? 質問する

辞書、リスト、セットはいつ使用すればよいですか?

各データ タイプに適したシナリオはありますか?

ベストアンサー1

A はlist順序を保ちます。dictしたがってset、順序を気にする場合は、 を使用する必要がありますlist(もちろん、コンテナーの選択肢がこれら 3 つに限定されている場合は ;-) )。

dictは各キーを値に関連付けますが、 とlistsetは値のみが含まれます。明らかに、使用例が大きく異なります。

setではアイテムがハッシュ可能であることが必要ですが、listではそうではありません。したがって、ハッシュ不可能なアイテムがある場合は、 を使用できずset、代わりに を使用する必要がありますlist

setは重複を禁止しますが、listは禁止しません。これも重要な違いです。(重複を複数回存在する項目の異なるカウントにマップする「マルチセット」は にあります。何らかの奇妙な理由で をインポートできなかった場合は として、または 2.7 より前の Python では としてcollections.Counter構築できます。その場合、項目をキーとして使用し、関連付けられた値をカウントとして使用します)。dictcollectionscollections.defaultdict(int)

set(またはキーの場合は)値のメンバーシップのチェックは、dict非常に高速(一定の短時間)ですが、リストの場合は、平均および最悪の場合、リストの長さに比例した時間がかかります。したがって、ハッシュ可能な項目があり、順序や重複を気にせず、メンバーシップのチェックを高速化したい場合は、setよりも の方が適していますlist

おすすめ記事