Pythonにおけるリスト

Pythonにおけるリスト

この記事ではPythonにおけるリストについて説明します。

リストの各種の操作方法や内包表記などをコードサンプルと共に学べます。

YouTube Video

Pythonにおけるリスト

Pythonでは、配列と呼ばれるデータ構造は通常「リスト」として実装されます。Pythonのリストは非常に柔軟で、以下の操作を行うことができます。

リストの作成

1# Create an empty list
2my_list = []
3print(my_list)
4
5# Create a list with elements
6my_list = [1, 2, 3, 4, 5]
7print(my_list)
  • リストは空または初期要素を指定して作成できます。

リストの要素のアクセスと変更

1my_list = [1, 2, 3, 4, 5]
2print(my_list)  # [1, 2, 3, 4, 5]
3
4element = my_list[0]  # Get the element at index 0
5print(element)  # 1
6
7my_list[1] = 10  # Change the element at index 1 to 10
8print(my_list)  # [1, 10, 3, 4, 5]
  • リストの要素はインデックスを指定して、取得や変更を行えます。

リストの長さを取得

1my_list = [1, 2, 3, 4, 5]
2
3length = len(my_list)
4print(my_list)
5print(length)
  • len()関数を使用すると、要素の数を取得 できます。

リストへの要素の追加と挿入

1my_list = [1, 2, 3, 4, 5]
2
3my_list.append(6)
4print(my_list)
  • append()メソッドを使用すると、末尾に要素を追加 できます。
1my_list = [1, 2, 3, 4, 5]
2
3my_list.insert(2, "A")  # Insert "A" at index 2
4print(my_list)
  • insert()メソッドを使用すると、任意の位置に要素を挿入 できます。

リストからの要素の削除

1my_list = [1, 2, 3, 4, 5]
2
3del my_list[2]  # Delete the element at index 2
4print(my_list)
5
6removed_element = my_list.pop(0)  # Delete and return the element at index 0
7print(removed_element)
8print(my_list)
  • del文またはpop()メソッドを使用すると、指定した位置の要素を削除 できます。pop()メソッドは削除した要素を返します。
1my_list = [1, 2, 3, 4, 5]
2
3my_list.remove(5)  # Remove the first occurrence of 5 from the list
4print(my_list)
  • remove()メソッドを使用すると、指定した値の最初の出現を削除 できます。

リストのスライス

1my_list = [1, 2, 3, 4, 5]
2
3print(my_list[1:3])  # [2, 3]
4print(my_list[:3])   # [1, 2, 3]
5print(my_list[2:])   # [3, 4, 5]
6print(my_list[:])    # [1, 2, 3, 4, 5]
  • スライス構文 [start:end] は、start から end - 1 までの要素を取得します。start または end を省略することも可能です。

リストのソート

1my_list = [2, 1, 5, 4, 3]
2print(my_list)  # [2, 1, 5, 4, 3]
3
4my_list.sort()  # Sort in ascending order (modifies the list)
5print(my_list)  # [1, 2, 3, 4, 5]
6
7my_list.sort(reverse=True)  # Sort in descending order
8print(my_list)  # [5, 4, 3, 2, 1]
  • sort() メソッドでリストを昇順・降順に並べ替えられます。
1my_list = [3, 1, 4, 2]
2sorted_list = sorted(my_list)
3print(my_list)       # [3, 1, 4, 2]
4print(sorted_list)   # [1, 2, 3, 4]
  • sorted() 関数で元のリストを変更せずに並べ替えた新しいリストを作れます。

逆順リストの作成

1my_list = [1, 2, 3, 4, 5]
2
3my_list.reverse()
4print(my_list)
  • reverse() メソッドでリストの要素を逆順に並べ替えられます。

リスト内包表記

Pythonでは、リスト内包表記 という強力な構文を使って、簡潔にリストを生成できます。リスト内包表記は、forループを使って新しいリストを生成する処理を一行で書ける構文です。条件式を加えて特定の要素だけを抽出することも可能です。

 1# Generate squares of numbers from 0 to 9
 2squares = [x**2 for x in range(10)]
 3print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
 4
 5# Use a condition to extract squares of even numbers only
 6even_squares = [x**2 for x in range(10) if x % 2 == 0]
 7print(even_squares)  # [0, 4, 16, 36, 64]
 8
 9# Store either the square or the original number based on a condition
10squares_or_original = [x**2 if x % 2 == 0 else x for x in range(10)]
11print(squares_or_original)
12# Output: [0, 1, 4, 3, 16, 5, 36, 7, 64, 9]
  • リスト内包表記で、ループや条件を使って簡潔に新しいリストを作成できます。ifif-else を使うことで、条件に応じて要素を抽出したり、異なる値を生成したりするリスト内包表記を作成できます。

リストの連結

 1# Concatenate two lists using the + operator
 2a = [1, 2, 3]
 3b = [4, 5, 6]
 4combined = a + b
 5print(combined)  # [1, 2, 3, 4, 5, 6]
 6
 7# Extend an existing list with another list
 8a = [1, 2, 3]
 9b = [4, 5, 6]
10a.extend(b)
11print(a)  # [1, 2, 3, 4, 5, 6]
12
13# Concatenate multiple lists using unpacking (*)
14a = [1, 2, 3]
15b = [4, 5, 6]
16c = [7, 8, 9]
17merged = [*a, *b, *c]
18print(merged)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]
  • Pythonでは、+演算子、extend()メソッド、アンパック構文(*)を使ってリストを連結できます。新しいリストを作成する場合は+*、既存のリストを更新する場合はextend()を使うのが一般的です。

まとめ

リストはPythonの基本的なデータ構造で、多くの場面で利用されます。柔軟で便利な機能が多く、使いこなせると効率的なプログラミングが可能です。

YouTubeチャンネルでは、Visual Studio Codeを用いて上記の記事を見ながら確認できます。 ぜひYouTubeチャンネルもご覧ください。

YouTube Video