【Python】リストの要素を一つずつ取り出す
Pythonでリストの要素を一つずつ取り出すプログラムについて解説します。
リストの要素を一つずつ取り出す
コード例
# リストの要素を一つずつ取り出す
lst = [11, 22, 33, 44, 55]
for i in lst:
print(i)
実行結果
11
22
33
44
55
このプログラムでは、for文を使ってリストlstから要素を1つずつiに取り出します。
これはリストがイテラブルオブジェクトであることを利用しています。
イテラブルとは、先頭から末尾までを順に1個ずつなぞっていく仕組みを提供する構造です。
リストの要素を末尾から一つずつ取り出す
コード例
# リストの要素を末尾から一つずつ取り出す
lst = [11, 22, 33, 44, 55]
for i in reversed(lst):
print(i)
実行結果
55
44
33
22
11
このプログラムでは、リストの要素を末尾から先頭、つまり後ろから前へ一つずつ取り出しています。
for文の走査対象をreversed(lst)とすることでリストlstの要素を逆順に1個ずつiに取り出せるようになります。
また、lst[::-1]というスライス式にしても同様に逆順になります。
リストの要素をインデックスとペアで一つずつ取り出す
コード例
# リストの要素をインデックスとペアで一つずつ取り出す
lst = [11, 22, 33, 44, 55]
for i in range(len(lst)):
print(f'lst[{i}] = {lst[i]}')
実行結果
lst[0] = 11
lst[1] = 22
lst[2] = 33
lst[3] = 44
lst[4] = 55
このプログラムでは、要素数をlen関数で事前に取得してリストの要素を一つずつ取り出しています。
そのためiの値は0から要素数-1になります。
enumerate関数でも同様のプログラムが実現できます。
コード例
# リストの要素をインデックスとペアで一つずつ取り出す
lst = [11, 22, 33, 44, 55]
for i, number in enumerate(lst):
print(f'lst[{i}] = {number}')
実行結果
lst[0] = 11
lst[1] = 22
lst[2] = 33
lst[3] = 44
lst[4] = 55
enumerate関数なのでi以外にnumberという変数を用いています。
iにはインデックス、numberにはlst[i]つまり要素が取り出されています。
次にカウントを1から始める、すなわち最初は1番目と表示させます。
コード例
# リストの要素をインデックスとペアで一つずつ取り出す(1からカウント)
lst = [11, 22, 33, 44, 55]
for i, number in enumerate(lst, 1):
print(f'{i}番目 = {number}')
実行結果
1番目 = 11
2番目 = 22
3番目 = 33
4番目 = 44
5番目 = 55
このプログラムでは、enumerate関数の第2引数に先頭値として1を指定しています。
そのため最初は1番目と表示されます。