【Python入門】セット(set)を反復処理する5つの方法を徹底解説
この記事では、Python 3.xにおけるセット(set)データ型の反復処理(走査)の方法について詳しく解説します。
セットとは、重複を許さない要素の順序なしコレクションです。すべての要素を波括弧 {} で囲むことで作成できるほか、set() を使った型キャストによっても生成できます。ここでは、セットを反復処理するための5つの異なる手法をコード例とともに紹介します。
方法1:インデックスを使わずにforループで反復処理する
最も基本的な方法です。セットはそのままイテラブル(反復可能)なオブジェクトなので、forループに直接渡すことができます。
set_inp = {'t','u','t','o','r','i','a','l','s','p','o','i','n','t'}
# セットを反復処理する
for value in set_inp:
print(value, end='')方法2:リスト型に変換してインデックスでアクセスする
list() でセットをリストに変換すれば、インデックスを使った要素へのアクセスが可能になります。
set_inp = list({'t','u','t','o','r','i','a','l','s','p','o','i','n','t'})
# インデックスで反復処理する
for value in range(0, len(set_inp)):
print(set_inp[value], end='')方法3:enumerate()を使う
enumerate() 関数を使用すると、要素と同時にインデックスも取得できます。インデックスが必要ない場合でも、この方法で反復処理できます。
set_inp = {'t','u','t','o','r','i','a','l','s','p','o','i','n','t'}
# enumerateで反復処理する
for value, char in enumerate(set_inp):
print(char, end='')方法4:リスト型に変換して負のインデックスでアクセスする
Pythonのリストは負のインデックス(後ろから数えた位置)にも対応しています。これを利用した反復処理の例です。
set_inp = list({'t','u','t','o','r','i','a','l','s','p','o','i','n','t'})
# 負のインデックスで反復処理する
for value in range(-len(set_inp), 0):
print(set_inp[value], end='')上記の方法1〜4は、いずれも以下の出力結果を返します。
出力結果
plsrainuto補足: セットは順序を持たないデータ構造のため、実行環境や実行タイミングによって出力される要素の並び順は変わる可能性があります。
方法5:リスト型に変換してスライシングで反復処理する
リストに変換した後、スライシングを活用して1文字ずつ取り出す方法です。
set_inp = list({'t','u','t','o','r','i','a','l','s','p','o','i','n','t'})
# スライシングで反復処理する
for value in range(1, len(set_inp)):
print(set_inp[value-1:value], end='')
print(set_inp[-1:])出力結果
['p']['l']['s']['r']['a']['i']['n']['u']['t']['o']まとめ
この記事では、Pythonにおけるセット(set)データ型の反復処理について学びました。シンプルなforループから、リスト変換を組み合わせたインデックスアクセスやスライシングまで、目的に応じてさまざまな実装手法を選択できます。通常は方法1のように直接forループで反復処理するのが最も簡潔で推奨される書き方ですが、インデックスが必要な場面ではリストへの変換や enumerate() の活用が有効です。
-
Pythonで特定のディレクトリ内のファイルを反復処理する方法をわかりやすく解説
os.listdir()でディレクトリの中身を一括取得するPythonで特定のディレクトリ内のファイルやフォルダを反復処理したい場合、最も基本的な方法が標準ライブラリのos.listdir()を使うことです。os.listdir(my_path)を実行すると、指定したパス(my_path)に含まれるファイルとディレクトリの一覧がリスト形式で返されます。以下は、カレントディレクトリ(.)の中身を取得する例です。>>> import os>>> os.listdir(.)[DLLs, Doc, etc, include, Lib, libs, LICENSE.t
-
Pythonのセット(set)とは?作成・操作・結合の基本を徹底解説
Pythonのセット(set)は、順序を持たない(unordered)コレクション型で、重複のない一意な(unique)かつ変更不可能な(immutable)オブジェクトを格納します。つまり、セットに同じ要素を複数入れることはできず、一度作成した要素そのものを書き換えることもできません。 ポイント: セットの「要素」はイミュータブル(変更不可)ですが、セット自体はミュータブル(変更可能)です。そのため、後から要素の追加や削除を行うことは可能です。 セットは順序を保持しません。同じセットを何度 print しても、表示される要素の並び順が変わることがあります。 Pythonでは、セットを波括弧