Zenn
🔰

Python 学習帳(基礎編 ~listまとめ~)

2025/01/01に公開

リスト型

他の要素を取りまとめるデータ型の1つ
他の言語における配列のような立ち位置

宣言

# 空のリスト
emptyList = []
emptyList = list()

# リストには任意の型の要素を格納できる
values = [1, 2, 3, 4,] # int型の要素
values = ["first", 2, "3",] # int/string型の要素

# リスト内包表記を使ったリストの生成
values = [str(num) for num in range(0, 10)] # 0~9までの文字列が要素

インデックス・スライス

values = ["first", 2, "3", "foo",]

# 正の時は先頭から、負の時は後ろから
values[0] # "first"
values[-2] # "3"

# スライス (始点:終点)
values[1:] # [2, '3', 'foo']
values[:2] # ['first', 2]
values[2:3] # ['3', "foo"]

リストはミュータブル

# listはミュータブルな型なので要素の入れ替えは可能
values = ["first", 2, "3", "foo",]
values[0] # 'first'
values[0] = 1
values[0] # 1

リスト操作の関数まとめ

values = [1, 2, 3, 4, 5,]

# リストだけでなく文字列やタプルなどのシーケンスの長さを返す
len(values) # 5

# 末尾に要素の追加
values.append(6) # [1, 2, 3, 4, 5, 6]

# 複数の要素を追加する(複数のリストを一つにしたい時とか)
values2 = [7, 8, 9,]
values.extend(values2) # [1, 2, 3, 4, 5, 6, 7, 8, 9]

# 要素を逆順に
values.reverse() # [9, 8, 7, 6, 5, 4, 3, 2, 1]

# 指定した位置に要素を追加
# インデックス0の位置に10を追加
values.insert(0, 10) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

# リストの要素を昇順にソート
values.sort() # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 要素の出現回数を数える
values.count(10) # 1

# 指定した要素を消す
values.remove(10) # [1, 2, 3, 4, 5, 6, 7, 8, 9]

# 指定したインデックスの要素を消してその値を返す
values.pop(8) # 9
values # [1, 2, 3, 4, 5, 6, 7, 8]

# 要素を全消し
values.clear() # []

# 指定した要素のインデックスを取得
values = [1, 2, 3]
values.index(2) # 1

# 浅いコピーの作成
original = [1, 2, 3, ["five", "six"]]
copyList = original.copy()
# 変数のidは異なる
id(original) # 70369318489088
id(copyList) # 70369319509248
# 変数の中身の参照しているオブジェクトは同じもの
id(original[3]) # 70369131596800
id(copyList[3]) # 70369131596800

original[3].insert(0, "four")

original # [1, 2, 3, ['four', 'five', 'six']]
copyList # [1, 2, 3, ['four', 'five', 'six']]

※シーケンス:コレクションのうちで、集約する要素が一定の順序で並んでいて、その順序(インデックス)を使ってその要素を指定できる種類のオブジェクトのこと

参考

https://docs.python.org/ja/3.13/
https://qiita.com/wooooo/items/9ec2ff2c0a04a20dafb3

Discussion

ログインするとコメントできます