Python セット要素へのアクセス
1. 要素へのアクセス (Access Items)
セットは順序がなく(Unordered)、インデックス(Index)も割り振られていません。そのため、リストやタプルのように thisset[0] といった指定で特定の要素にアクセスすることはできません。
セット内の要素を参照するには、主に以下の2つの方法を使用します。
2. forループによる反復処理
for ループを使用することで、セットに含まれるすべての項目を1つずつ取り出すことができます。
例:セットの項目をループで1つずつ表示する
thisset = {"apple", "banana", "cherry"}
for x in thisset:
print(x)重要: セットは順序を保持しないため、ループで取り出される順番は実行するたびに変わる可能性があります。特定の順番で処理したい場合は、事前にソート(sorted()関数などを使用)する必要があります。
3. in演算子による存在判定
特定の項目がセットの中に含まれているかどうかを確認するには、in キーワードを使用します。セットはこの「存在判定」が非常に高速に行えるという特性を持っています。
例:セットの中に "banana" があるか確認する
thisset = {"apple", "banana", "cherry"}
print("banana" in thisset)例:セットの中に "banana" が「ない」ことを確認する
thisset = {"apple", "banana", "cherry"}
print("banana" not in thisset)4. 項目の変更について
セットの最大の特徴の一つは、「一度作成した項目そのものを変更することはできない」という点です。
例えば、「"apple" を "orange" に書き換える」といった操作はできません。どうしても変更したい場合は、一度その項目を削除してから、新しい項目を追加するという手順を踏む必要があります。
エンジニアの知恵:
大量のデータの中から特定のキーワードを探し出す場合、リストよりもセットの方が圧倒的に処理が速いです。これはセットが「ハッシュテーブル」という仕組みで管理されているため。検索がメインの処理なら、迷わずセットを使いましょう!
「中身の書き換えはできない」と言いましたが、新しい要素を「追加」すること自体は自由自在です。次は、セットに新しいデータをどんどん放り込む方法(Add Set Items)を見ていきましょう。