📖

Pythonの初心者レッスンーーPythonリスト(list)

2024/06/16に公開

シーリズの目次

Pythonの初心者レッスンをここにまとめています。
https://zenn.dev/datasciencekun/articles/319e0f4b4021c5

Pythonにおけるリスト(list)は、複数のアイテムを順序付けて格納できる可変長のコレクション型です。リストの各アイテムは異なるデータ型であっても構いません。リストは、要素の追加、削除、並べ替え、スライスなどの操作が可能です。

リストの基本

定義

リストは、角括弧 [] を使って定義し、各要素をカンマ , で区切ります。

# 空のリスト
empty_list = []

# 空のリスト
empty_list = list()

# 異なるデータ型を含むリスト
mixed_list = [1, "hello", 3.14, True]

# リストの出力
print(mixed_list)  # 出力: [1, 'hello', 3.14, True]

インデックス

文字列のインデックスと同様に、リストインデックスは0から始まり、2番目のインデックスは1となります。
インデックスリストで切り取ったり、組み合わせたりすることができます。

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] ) # 出力 red
print( list[1] ) # 出力 green
print( list[2] ) # 出力 blue

インデックスは末尾から始めて、最後の要素は-1、前の1桁は-2、といった具合です。

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[-1] ) # 出力 black
print( list[-2] ) # 出力 white
print( list[-3] ) # 出力 yellow

添え字索引を使ってリストの値にアクセスします。次のように括弧[]で文字を切り取ることもできます。

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4]) # 出力 [10, 20, 30, 40]

list = ['Google', 'Runoob', "Zhihu", "Taobao", "Wiki"]
print ("list[1]: ", list[1]) # 出力 list[1]:  Runoob
print ("list[1:-2]: ", list[1:-2]) # 出力 list[1:-2]:  ['Runoob', 'Zhihu']

リストの主要な操作

以下はリストで使用できる一般的な操作の一覧です。

  1. リストへの要素の追加
    • append(): リストの末尾に要素を追加します。
    • insert(): 指定した位置に要素を挿入します。
    • extend(): リストを結合します。
my_list = [1, 2, 3]
my_list.append(4)         # [1, 2, 3, 4]
my_list.insert(1, 'a')    # [1, 'a', 2, 3, 4]
my_list.extend([5, 6, 7]) # [1, 'a', 2, 3, 4, 5, 6, 7]
  1. リストからの要素の削除
    • remove(): 最初に見つかった指定の値を削除します。
    • pop(): 指定した位置の要素を削除し、その要素を返します。位置を指定しない場合は末尾の要素を削除します。
    • clear(): リストのすべての要素を削除します。
my_list = [1, 2, 3, 4, 5]
my_list.remove(3)         # [1, 2, 4, 5]
popped_element = my_list.pop(1) # 2, my_listは [1, 4, 5]
my_list.clear()           # []
  1. リストの検索とカウント
    • index(): 指定した値を持つ最初の要素の位置を返します。
    • count(): 指定した値がリスト内に出現する回数を返します。
my_list = [1, 2, 2, 3, 4]
index_of_2 = my_list.index(2)   # 1
count_of_2 = my_list.count(2)   # 2
  1. リストのソートと逆順
    • sort(): リストを昇順にソートします。
    • reverse(): リストの要素の順序を反転します。
my_list = [3, 1, 4, 1, 5, 9]
my_list.sort()      # [1, 1, 3, 4, 5, 9]
my_list.reverse()   # [9, 5, 4, 3, 1, 1]
  1. リストのスライス
    リストの一部を取り出すことができます。
my_list = [0, 1, 2, 3, 4, 5]
sub_list = my_list[1:4]    # [1, 2, 3]
  1. リストの長さを取得
    • len(): リストの要素数を返します。
my_list = [1, 2, 3, 4, 5]
length = len(my_list)      # 5

リストの内包表記

リスト内包表記は、リストを簡潔に生成するための方法です。

# 0から9までの二乗を含むリストを生成
squares = [x**2 for x in range(10)] # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# 条件付きリスト内包表記
evens = [x for x in range(10) if x % 2 == 0] # [0, 2, 4, 6, 8]

リストの多次元リスト

リストはリストの中にリストを含むことができます。

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 要素にアクセス
element = matrix[1][2]  # 6

リストに関する演算子

以下は、Pythonリストのスクリプト演算子をテーブルでまとめたものです。

操作符 説明 使用例 出力(例)
+ 2つのリストを結合する。 [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6]
* リストの要素を指定された回数だけ繰り返す。 [1, 2, 3] * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3]
in 指定した要素がリストに含まれているかどうかをチェックする。 2 in [1, 2, 3] True
not in 指定した要素がリストに含まれていないかどうかをチェックする。 4 not in [1, 2, 3] True
[] リスト内の特定の位置にある要素にアクセスする。 [1, 2, 3][1] 2
[:] スライスを使ってリストの一部を取得する。 [1, 2, 3, 4, 5][1:3] [2, 3]
len() リストの要素数を取得する。 len([1, 2, 3]) 3
min() リスト内の最小値を取得する。 min([1, 2, 3]) 1
max() リスト内の最大値を取得する。 max([1, 2, 3]) 3
sum() リスト内の数値の合計を計算する。 sum([1, 2, 3]) 6
list() 文字列やタプルなどをリストに変換する。 list("hello") ['h', 'e', 'l', 'l', 'o']
append() リストの末尾に要素を追加する。 my_list.append(4) [1, 2, 3, 4]
extend() リストを結合する。 my_list.extend([5, 6]) [1, 2, 3, 4, 5, 6]
insert() リストの指定位置に要素を挿入する。 my_list.insert(1, 'a') [1, 'a', 2, 3]
remove() リストから最初に見つかった指定要素を削除する。 my_list.remove(2) [1, 3]
pop() 指定位置にある要素を削除し、その要素を返す。 my_list.pop(1) 'a'(残りのリストは [1, 3]
clear() リストのすべての要素を削除する。 my_list.clear() []
index() 指定した要素の最初の位置を返す。 my_list.index(3) 1
count() 指定した要素がリストに出現する回数を返す。 my_list.count(1) 1
sort() リストを昇順にソートする。 my_list.sort() [1, 2, 3, 4]
reverse() リストの要素の順序を反転する。 my_list.reverse() [4, 3, 2, 1]

Discussion