Python 速習チュートリアル

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)を見ていきましょう。