はじめに
複数の値を扱えるのは分かる。違いはちゃんと説明できない。
なんとなくでも説明できるレベルになりたいのでまとめた。
リスト(list)
リストは要素(中身)の挿入と削除ができる。
インデックス番号で要素にアクセスできる。
初期化
test.py
# 初期化
mylist=[]
print(f'mylistの形式: {type(mylist)}')
print(f'mylistの中身: {mylist}')```
↓実行結果
# python test.py
mylistの形式: <class 'list'>
mylistの中身: []
mylist=[]
で行っている初期化は、mylist=list()
とも記述できる。
初期化時の注意
test.py
# 初期化
mylist = list("MY LIST")
print(f'リスト: {mylist}')
↓実行結果
# python test.py
リスト: ['M', 'Y', ' ', 'L', 'I', 'S', 'T']
list()を使って初期化のつもりが、1文字ずつリスト化されました。
MY LISTというstr型の文字列をリスト型に変換したため、1文字ずつのリストになりました。
mylist = ["MY LIST"]
として初期化しましょう。
データの追加
リストの後ろに追加するときはappend
、任意の場所に追加するときはinsert
を使う。
test.py
# 要素をひとつ追加
mylist.append('A')
print(f'要素をひとつ追加: {mylist}')
# 要素をまとめて追加
add_list = ['B','C','D','E']
for add in add_list:
mylist.append(add)
print(f'要素をまとめて追加: {mylist}')
# 任意の場所に追加
mylist.insert(3,'Z')
print(f'任意の場所に追加: {mylist}')
↓実行結果
# python test.py
要素をひとつ追加: ['A']
要素をまとめて追加: ['A', 'B', 'C', 'D', 'E']
任意の場所に追加: ['A', 'B', 'C', 'Z', 'D', 'E']
要素にアクセス(取り出す)
test.py
# 初期化
mylist=['A','B','C','D','E']
# 要素にアクセス
print(f'2番目の要素にアクセス: {mylist[1]}')
↓実行結果
# python test.py
2番目の要素にアクセス: B
リストは一番頭の要素が0から数え始めるので、2番目の文字は[1]
でアクセスする。
書き換え
test.py
# 初期化
mylist=['A','B','C','D','E']
# 要素の一部をリストに書き換え
mylist[4] = ['E','F','G']
print(f'要素の一部をリストに書き換え: {mylist}')
↓実行結果
# python test.py
要素の一部をリストに書き換え: ['A', 'B', 'C', 'D', ['E', 'F', 'G']]
リストの中にリストを入れることもできます。
削除
test.py
# 初期化
mylist=['A','B','C','D','E','D','F','D','G','D']
# 要素を削除(インデックス指定)
del mylist[0]
print(f'1番目の要素を削除: {mylist}')
del mylist[0:2]
print(f'1〜2番目の要素を削除: {mylist}')
# 指定した文字列を削除
mylist.remove('D')
print(f'Dを削除(最初の1文字だけ): {mylist}')
# 重複削除
del_list_dup = list(set(mylist))
print(f'重複削除: {del_list_dup}')
# 指定文字のみ削除(指定文字以外を残す)
del_list_not = [s for s in mylist if s != 'D']
print(f'指定文字のみ削除: {del_list_not}')
# 指定文字以外を削除(指定文字のみ残す)
del_list_eq = [s for s in mylist if s == 'D']
print(f'指定文字以外を削除: {del_list_eq}')
↓実行結果
# python test.py
1番目の要素を削除: ['B', 'C', 'D', 'E', 'D', 'F', 'D', 'G', 'D']
1〜2番目の要素を削除: ['D', 'E', 'D', 'F', 'D', 'G', 'D']
Dを削除(最初の1文字だけ): ['E', 'D', 'F', 'D', 'G', 'D']
重複削除: ['E', 'G', 'F', 'D']
指定文字のみ削除: ['E', 'F', 'G']
指定文字以外を削除: ['D', 'D', 'D']
タプル(tuple)
タプルは書き換えができない形式。
リスト⇔タプルの相互変換が可能。
test.py
# 初期化
mylist = ['A','B','C','D','E']
# タプルに変換
mytuple = tuple(mylist)
# 確認
print(f'データの確認: {mytuple}')
print(f'型の確認: {type(mytuple)}')
# 要素を取得
print(f'3番目の要素を取得: {mytuple[2]}')
↓実行結果
# python test.py
データの確認: ('A', 'B', 'C', 'D', 'E')
型の確認: <class 'tuple'>
3番目の要素を取得: C
タプルを初期化する場合は、mytuple = ('A', 'B', 'C', 'D', 'E')'としてやればよい。 タプルからリストへの変換は、
list(mytuple)`で変換できる。