Pythonで理解するセットと並列・並行処理

この記事では、Pythonでの「セット」と「並列・並行処理」に焦点を当てます。具体的なコード例やその解説、さらには応用例も含めて詳しく解説します。

目次

セット(Set)とは

Pythonにおいて、セットは一意の要素から成るコレクションです。リストやタプルとは違い、セットは要素の順序を保持しません。

基本的な操作

# セットの作成
my_set = {1, 2, 3}
# 要素の追加
my_set.add(4)
# 要素の削除
my_set.remove(1)
# 要素の存在確認
exist = 2 in my_set

上記のコードでは、セットの作成から要素の追加、削除、そして要素の存在確認までを行っています。

並列・並行処理とは

並列処理とは、複数の処理を同時に行うことです。一方、並行処理は、複数のタスクが交互に処理されることを指します。Pythonでは`threading`や`multiprocessing`などのライブラリが用意されています。

threadingの基本

import threading

# スレッドで実行する関数
def print_numbers():
    for i in range(10):
        print(i)

# スレッドの作成と開始
t = threading.Thread(target=print_numbers)
t.start()

上記のコードでは、`threading`モジュールを用いて簡単な並列処理を行っています。

応用例

セットでのデータフィルタリング

# データフィルタリングの例
raw_data = [1, 2, 2, 3, 4, 3, 5]
unique_data = set(raw_data)
filtered_data = {x for x in unique_data if x > 2}

非同期I/OによるWebスクレイピング

import asyncio
import aiohttp

async def fetch_content(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            return await response.text()

loop = asyncio.get_event_loop()
content = loop.run_until_complete(fetch_content('https://www.example.com'))

マルチプロセスによる数値計算

from multiprocessing import Pool

def square(n):
    return n * n

if __name__ == '__main__':
    with Pool(4) as p:
        result = p.map(square, [1, 2, 3, 4])

まとめ

Pythonのセットと並列・並行処理には、多くの可能性が広がっています。これを機に、より効率的なプログラミングを目指してみてはいかがでしょうか。

コメント

コメントする

目次