【Python入門】Pythonのdeque.copy関数とは?使い方と活用方法を徹底解説(Python 3.11)

Python

はじめに

Pythonのcollectionsモジュールには、リストと似た機能を持つdeque(デック)というデータ型があります。dequeは高速なデータの追加・削除が可能で、効率的なキューやスタックの実装に役立ちます。

この記事では、Python 3.11で新たに導入されたdeque.copy関数の使い方とその活用方法について初心者向けに詳しく解説します。

deque.copy関数とは?

deque.copy関数は、元のdequeオブジェクトを浅いコピー(shallow copy)で複製するためのメソッドです。この関数を使うことで、元のdequeの要素を保持したまま、新しいdequeオブジェクトを作成できます。

なぜ浅いコピーが必要?

浅いコピーでは、オブジェクトの参照がコピーされるため、ネストされたリストやオブジェクトは同じ参照先を持ちます。データの整合性を保ちつつ、新しいデータ操作を行いたい場合に便利です。

deque.copy関数の基本構文

from collections import deque

# dequeの作成
d = deque([1, 2, 3, 4])

# dequeのコピー
new_d = d.copy()

print(new_d)

実行結果

deque([1, 2, 3, 4])

deque.copy関数の使用例

例1: dequeのコピー後に新しい要素を追加する

from collections import deque

original = deque([10, 20, 30])
copy = original.copy()

copy.append(40)

print("Original:", original)
print("Copy:", copy)

実行結果

Original: deque([10, 20, 30])
Copy: deque([10, 20, 30, 40])

deque.copy関数の応用例

例2: ネストされたリストのコピー

from collections import deque

nested = deque([[1, 2], [3, 4]])
copy = nested.copy()

# コピーの要素を変更
copy[0][0] = 100

print("Original:", nested)
print("Copy:", copy)

実行結果

Original: deque([[100, 2], [3, 4]])
Copy: deque([[100, 2], [3, 4]])

この例からもわかるように、浅いコピーではネストされたリストの参照が共有されます。

まとめ

Python 3.11で導入されたdeque.copy関数は、dequeオブジェクトの浅いコピーを手軽に行うための便利なメソッドです。浅いコピーの特性を理解し、用途に応じて使い分けることが重要です。

ポイントまとめ:

  • deque.copy関数は浅いコピーを作成
  • ネストされた要素は参照が共有される
  • コピー後のオブジェクトは元のdequeとは独立して操作できる

今後、より複雑なデータ構造を扱う際に役立つでしょう。