LoginSignup
0
0

More than 1 year has passed since last update.

Pythonのリスト、タプルについて

Posted at

はじめに

複数の値を扱えるのは分かる。違いはちゃんと説明できない。
なんとなくでも説明できるレベルになりたいのでまとめた。

リスト(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)`で変換できる。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0