Python転職初心者向けエンジニアリングブログ

Pythonに魅了されたあなたへ。エンジニアリングの扉を開く転職初心者向けのブログへようこそ。このブログでは、Pythonの奥深さに迫りながら、エンジニアリングへの転職に役立つ情報を提供しています。未経験者から始めるPythonエンジニアリングの世界への一歩を踏み出すためのガイダンス、ベストプラクティス、そして成功事例など、初心者の方でもわかりやすいコンテンツをお届けします。

Pythonのリスト(List): データを柔軟に扱う鍵

LYPプレミアム会員 python

Pythonにおいて、リスト(List)は非常に重要で柔軟なデータ構造です。リストは複数の要素を順序付けて保持し、変更可能(mutable)な特性を持っています。この記事では、Pythonのリストについて基本から応用までをコード例を交えながら詳しく解説します。

リストの基本

Pythonのリストは、複数の要素を角かっこ [] でくくり、要素と要素の間をカンマ , で区切って表現します。以下は基本的なリストの例です。

my_list = [1, 2, 3, 'apple', 'orange', True]

このリストには整数、文字列、ブール値が混在しています。リストは異なるデータ型の要素を同時に格納できます。

リストの要素へのアクセス

リスト内の要素には、インデックスを使用してアクセスします。インデックスは0から始まります。例えば、my_listの最初の要素にアクセスするには次のようにします。

first_element = my_list[0]
print(first_element)

このコードは 1 を出力します。リストの末尾からのインデックスも -1 で指定できます。

last_element = my_list[-1]
print(last_element)

このコードは True を出力します。

リストのスライシング

リストのスライシングを使うと、特定の範囲の要素を取得できます。スライシングは 開始:終了 の形式で指定します。開始のインデックスは含まれ、終了のインデックスは含まれないことに注意してください。

my_slice = my_list[1:4]
print(my_slice)

このコードは [2, 3, 'apple'] を出力します。リスト全体をスライスする場合、 [:] を使用します。

whole_list = my_list[:]
print(whole_list)

このコードは [1, 2, 3, 'apple', 'orange', True] を出力します。

リストの変更と追加

リストは変更可能なデータ構造です。特定の要素に新しい値を代入したり、append() メソッドを使用して末尾に要素を追加したりできます。

my_list[1] = 'banana'
print(my_list)

このコードは [1, 'banana', 3, 'apple', 'orange', True] を出力します。

my_list.append('grape')
print(my_list)

このコードは末尾に 'grape' を追加し、[1, 'banana', 3, 'apple', 'orange', True, 'grape'] を出力します。

リストの削除

リストから要素を削除するには、remove() メソッドや del ステートメントを使用します。

my_list.remove('apple')
print(my_list)

このコードは 'apple' を削除し、[1, 'banana', 3, 'orange', True, 'grape'] を出力します。

del my_list[2]
print(my_list)

このコードはインデックスが 2 の要素を削除し、[1, 'banana', 'orange', True, 'grape'] を出力します。

リストの結合

+ 演算子を使用するか、extend() メソッドを利用して複数のリストを結合できます。

list1 = [1, 2, 3]
list2 = ['apple', 'orange']
combined_list = list1 + list2
print(combined_list)

このコードは [1, 2, 3, 'apple', 'orange'] を出力します。

list1.extend(list2)
print(list1)

このコードも同じく [1, 2, 3, 'apple', 'orange'] を出力します。

リストのコピー

リストをコピーする際には、浅いコピーと深いコピーの2つのアプローチがあります。

浅いコピー

original_list = [1, 2, 3, ['apple', 'orange']]
shallow_copy = original_list.copy()
shallow_copy[3][0] = 'banana'
print(original_list)

このコードは [1, 2, 3, ['banana', 'orange']] を出力します。リスト内のリストは同じオブジェクトを共有しているため、一方を変更するともう一方も影響を受けます。

深いコピー

import copy

original_list = [1, 2, 3, ['apple', 'orange']]
deep_copy = copy.deepcopy(original_list)
deep_copy[3][0] = 'banana'
print(original_list)

このコードは [1, 2, 3, ['apple', 'orange']] を出力します。copy.deepcopy() を使用することで、元のリストとコピーが別々のオブジェクトを参照するため、一方を変更してももう一方には影響を与えません。

リストの内包表記

リスト内包表記は、簡潔で効率的に新しいリストを生成する方法です。

squared_numbers = [x**2 for x in range(5)]
print(squared_numbers)

このコードは [0, 1, 4, 9, 16] を出

力します。range(5) で0から4までの整数が生成され、それぞれの要素を2乗して新しいリストが作成されています。

リストのソート

リストをソートするには sort() メソッドを使用できます。

numbers = [5, 2, 8, 1, 6]
numbers.sort()
print(numbers)

このコードは [1, 2, 5, 6, 8] を出力します。リスト内の要素が昇順にソートされます。降順でソートする場合は sort(reverse=True) とします。

結言

Pythonのリストは柔軟で強力なデータ構造であり、様々な操作が可能です。リストを使いこなすことで、データの保持や処理が効率的かつ読みやすくなります。基本的な操作から応用的なテクニックまで、リストの使い方をマスターすることはPythonプログラミングにおいて重要です。是非、実際にコードを書きながら学んでみてください。