Python基礎 第7回 コレクション : リスト 応用編

目次

リスト の応用操作

前回は リスト の基本的なイメージや作り方、値の変更方法を紹介しました。今回は、リストと繰り返し文を併用した便利なコードや、リストへの値の追加・削除など、リストに使用できる関数について紹介します。

リスト とfor文の併用

リストとfor文は非常に相性が良く、併用されることも多いです。さっそくサンプルコードを見てみましょう。

temp_list = [26, 22, 28, 29, 25, 25, 30]

for l in temp_list:
    print(l)

上記のコードを実行するとターミナルには

26

22

28

29

25

というように、リストに格納されている値が0番目から順に出力されます。

for 変数 in 繰り返し反復処理できるしくみ :

がfor文の基本構成とPython第4回の記事で紹介しましたが、「繰り返し反復処理できるしくみ」に今回取り上げているリストが該当するということになります。上記のコードを前回紹介した方法で記述しようとすると、

temp_list = [26, 22, 28, 29, 25, 25, 30]

print(temp_list[0])
print(temp_list[1])
print(temp_list[2])
...

というように、リストから取得したい値の数だけprint()を呼び出さなければなりません。

リストに使える便利な関数

・sum()

リストに格納されている数値の合計を求めることが出来ます。

・len()

リストの要素数を取得することが出来ます。sum()と併用して、格納した数値の平均値を求める際などに便利です。


temp_list = [26, 22, 28, 29, 25, 25, 30]

temp_avg = sum(temp_list) / len(temp_list)
print(temp_avg)

上記のようにsum()とlen()を記述すると、temp_listの平均を簡単に取得することが出来ます。

・append()

リストへ要素の追加ができます。追加した要素はリストの末尾に配置されます。

temp_list = [26, 22, 28, 29, 25, 25, 30]

temp_list.append(29) # リスト名.append()の使い方に注意
print(temp_list)

このコードを実行すると、[26, 22, 28, 29, 25, 25, 30, 29] がターミナルに出力されます。

・insert()

append()では追加する値はリストの末尾に配置されますが、リスト名.insert(位置, 値)のように記述することで指定した位置に値を追加することが出来ます。

temp_list = [26, 22, 28, 29, 25, 25, 30]

temp_list.insert(1, 0)
print(temp_list)

1番目の値に0が追加され、もともと入っていた値はすべて1つ後ろにずれます。

このコードを実行すると、[26, 0, 22, 28, 29, 25, 25, 30] がターミナルに出力されます。

・del

指定した要素を削除します。()を付けないのでご注意ください。

・remove()

指定した値を値に一致する最初の要素を削除します。

temp_list = [26, 0, 22, 28, 29, 25, 25, 30]

del temp_list[1] #1番目の0を削除
temp_list.remove(25) #5番目の25を削除

print(temp_list)

delによって0が削除され、remove()によって5番目の25が削除されたため、上記のコードを実行すると[26, 22, 28, 29, 25, 30] がターミナルに出力されます。remove() では一致する値がすべて削除されるのではなく、一致する最初の要素のみが削除されることに注意してください。

・sorted()

リストの各要素について、小さい順(昇順)に並べ替えた値を取得することが出来ます。

temp_list = [26, 22, 28, 29, 25, 25, 30]

print(sorted(temp_list))

リストの中身が昇順に並び替えられるため、実行すると[22, 25, 25, 26, 28, 29, 30] が取得できます。また、下記のように記述すると今度は降順に並び替えられ、[30, 29, 28, 26, 25, 25, 22] が取得できます。どちらもリストの順番自体を並び替えるわけではないので注意が必要です。よって、sorted()を使用したあと、print(リスト名)を使用すれば定義時と同じ順番のリストを出力することになります。

temp_list = [26, 22, 28, 29, 25, 25, 30]

print(sorted(temp_list, reverse=True))

スライスでの要素指定

Pythonではスライスと呼ばれる指定を使って、インデックスの範囲を指定し、その範囲に該当する要素からなるリストを取り出すことが出来ます。

リスト名[開始値 : 停止値 : 間隔]

で指定することが出来ます。

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

print(num_list[0:6]) #出力1
print(num_list[6:]) #出力2
print(num_list[::2]) #出力3
print(num_list[::-1]) #出力4

出力1では[1, 2, 3, 4, 5, 6] が出力されます。0番目から6番目未満の要素が取得されています。

出力2では[7, 8, 9, 10]が出力されます。6番目以降の要素が取得されています。

出力3では[1, 3, 5, 7, 9] が出力されます。0番目の要素から1つおきに要素が取得されています。

出力4では[10, 9, 8, 7, 6, 5, 4, 3, 2, 1] が出力されます。間隔を-1に指定すると、1番後ろの要素から順に逆順で要素が取得されています。

今回はリストの応用編ということで、様々なリストの扱い方や併用すると便利な関数を紹介しました。これらを使えるようになると、よりコーディングのレベルを高めることが出来ます。

(Visited 16 times, 1 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社NEUGATEは、都内で企業研修や職業訓練を運営している会社です。主に、IT系の教育事業に力を入れています。
この記事は、株式会社NEUGATEの教育事業部が執筆をしています。

企業ホームページ:https://neugate.co.jp/

コメント

コメントする

目次