pythonのリストの基本的な内容について、初心者向けに解説しています。
リストを扱うためのひととおりの操作方法について、浅く広く紹介しています。
それぞれの操作方法について、個別の詳細解説ページも用意していますので、併せて参考にしてみてください。
この記事で分かること
- pythonのリストとは
- 空のリストの作成
- リストへ要素を追加、リストの結合
- リストの要素の削除
- リストのスライス
- リストのソート
- リストの要素の比較
- リストの要素の検索方法
- リストの要素数をカウント(特定の要素、重複した要素)
- リストの要素の四則演算、平均の計算方法
- リストの要素をstr型やint型へ変換する方法
- 2次元リストの転置方法。行と列の入れ替え
- リストをcsvへ出力
- リストをExcelへ出力
スポンサーリンク
pythonのリスト(list)とは
pythonのリスト(list)は、多数の要素をまとめて管理できるデータ型の一つです。
リストを用いると、複数の要素をまとめて管理しつつ、必要な時に必要なだけの要素を取り出して使用できるようになります。
リストを用いることで、複数の要素に対する反復処理が非常に扱いやすくなります。
リスト(list)の定義方法
リストは、角かっこ " [ ] " の中に要素をカンマ " , " 区切りで並べることで定義できます。
リストの定義方法
リスト = [ 要素1, 要素2, 要素3, ・・・, 要素n ]
以下、リスト定義のサンプルコードです。
### リストの基本
fruits = ["Apple", "Banana", "Orange"]
print(fruits)
# ['Apple', 'Banana', 'Orange']
print(type(fruits))
# <class 'list'>
print(len(fruits))
# 3
>fruits = ["Apple", "Banana", "Orange"]
ここで、"Apple"、"Banana"、"Orange"の文字列型の要素を持つ、リスト「fruits」を定義しています。
>print(type(fruits))
type関数で、データ型を確認しています。
この結果から、list型が定義できていることが確認できます。
>print(len(fruits))
len関数で、リストの要素数を確認しています。
この結果から、リスト「fruits」の要素数が、"3" であることが確認できます。
スポンサーリンク
リスト(list)の要素とインデックス
リストの要素には順番があります。
リストには、「インデックス」という要素の順番を示す値があり、このインデックスを用いて要素を指定できます。
なお、pythonのリストのインデックスは、「0はじまり」になります。
以下、インデックスで要素を取り出すサンプルコードです。
### リストの要素をインデックスを指定して取り出し
fruits = ["Apple", "Banana", "Orange"]
print(fruits[0])
# Apple
print(fruits[1])
# Banana
print(fruits[2])
# Orange
print(fruits[-1])
# Orange
>print(fruits[-1])
インデックスにマイナスの値を指定することで、リストの要素を逆順に取り出すこともできます。
ここまで、Pythonのリストの基本的な内容について、紹介してきました。
以降では、リストのさまざまな操作方法について、浅く広く紹介していきます。
リストでできることを把握しておくと応用の幅が広がりますので、ひととおりの操作を覚えておくことをオススメします。
なお、この項で触れたpythonのリストのデータ型や、変数の扱いの基本的な内容については、
下記の記事で詳しく紹介していますので、興味のある方は参考にしてみてください。
空のリストの作成方法
要素の入っていない、空のリストの作成方法について紹介します。
これから要素を入れていくリストの宣言にも使えます。
下記の2つの方法があります。
空のリストの作成方法
【方法1】
リスト = [ ]
【方法2】
リスト = list()
空のリストの作成方法①: [ ]で作成
空のリストの作成方法の1つ目です。
角かっこ " [ ] " を用いて、要素の無いリストを作成します。
### 空のリストの作成方法
list_empty = []
print(list_empty)
# []
print(len(list_empty))
# 0
長さ 0 の、空のリストが作成されています。
空のリストの作成方法②:list関数を使用
空のリストの作成方法の2つ目です。
指定した要素をリストに変換する、list関数を用いて、空のリストを生成しています。
### 空のリストの作成方法【list関数】
list_empty = list()
print(list_empty)
# []
print(len(list_empty))
# 0
pythonの空のリストの作成方法、リストが空か判定する方法については、
下記の記事で詳しく紹介していますので、興味のある方は参考にしてみてください。
リストへ要素を追加、リストの結合
リストに要素を追加する方法、リストを結合する方法について紹介します。
リストに要素を追加 : append
appendメソッドを用いることで、リストの最後に要素を追加できます。
書き方
リスト.append( 要素 )
以下、サンプルコードです。
### appendのサンプルコード1
fruits = ["Apple", "Banana", "Orange"]
print(fruits)
# ['Apple', 'Banana', 'Orange']
fruits.append("Grape")
print(fruits)
# ['Apple', 'Banana', 'Orange', 'Grape']
最後にリストを結合 : extend
extendメソッドを用いることで、リストの最後に別のリストを連結できます。
書き方
リスト.extend( リスト )
以下、サンプルコードです。
### extendのサンプルコード
fruits = ["Apple", "Banana", "Orange"]
print(fruits)
# ['Apple', 'Banana', 'Orange']
num_list = [1, 2, 3]
fruits.extend(num_list)
print(fruits)
# ['Apple', 'Banana', 'Orange', 1, 2, 3]
リストの要素の追加、リストの連結などついては、下記の記事で詳しく紹介しています。
他にも、要素を任意の位置に挿入する方法なども紹介しています。
スポンサーリンク
リストの要素の削除
リストの要素を削除する方法について紹介します。
要素を削除する方法はいくつかありますので、ここでは代表して「del文」の使い方を紹介します。
インデックスで指定して、リストの要素を削除 : del
del文を用いることで、インデックス指定で、リストの要素を削除できます。
書き方
del リスト [ インデックス ]
以下、サンプルコードです。
### del : インデックスで指定して削除
fruits = ["Apple", "Banana", "Orange", "Lemon", "Mango"]
print(fruits)
# ['Apple', 'Banana', 'Orange', 'Lemon', 'Mango']
del fruits[2]
print(fruits)
# ['Apple', 'Banana', 'Lemon', 'Mango']
リストの要素の削除方法については、下記の記事で詳しく紹介しています。
複数の要素をまとめて削除する方法や、”要素名”で検索して削除する方法なども紹介しています。
リストのスライス
スライスの基本的な使い方について紹介します。
スライスを用いることで、リストや文字列を部分的に取得できます。
スライスで範囲を指定する場合は、選択の開始位置、終了位置、取得する要素のstep数を指定します。
開始位置、終了位置、step数は、コロン「:」で区切って指定します。
step数は省略可能です。
書き方
リスト[ 開始位置 : 終了位置 : step数 ]
リスト[ 開始位置 : 終了位置 ]
以下は、1次元の要素のスライスのサンプルコードです。
### 1次元リストのスライス【開始位置、終了位置】
list_test = list(range(0,10))
print(list_test)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list_test[2::])
# [2, 3, 4, 5, 6, 7, 8, 9]
print(list_test[2:])
# [2, 3, 4, 5, 6, 7, 8, 9]
print(list_test[:2:])
# [0, 1]
print(list_test[:2])
# [0, 1]
print(list_test[2:5:])
# [2, 3, 4]
print(list_test[2:5])
# [2, 3, 4]
以下は、step数も指定するサンプルコードです。
### 1次元リストのスライス【開始位置、終了位置、step数】
list_test = list(range(0,10))
print(list_test)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list_test[2:7:])
# [2, 3, 4, 5, 6]
print(list_test[2:7:2])
# [2, 4, 6]
リストのスライスについては、下記の記事で詳しく紹介しています。
2次元リストのスライスや、スライス位置に値を代入する方法なども紹介しています。
スポンサーリンク
リストのソート
リストをソートする方法について紹介します。
リストをソートする方法は複数ありますが、ここでは基本となるsortメソッドの使い方について紹介します。
sortメソッドは破壊的処理であるため、ソート前のリストが書き換えられます。
書き方
リスト.sort( key=None, reverse=False )
" key=None, reverse=False " の部分は、オプション指定であり、省略可能です。
最も簡潔な記述は、リスト.sort( ) となります。
以下、サンプルコードです。
### sortのサンプルコード(昇順)
num_list = [41, 52, 15, 38, 22]
num_list.sort()
print(num_list)
# [15, 22, 38, 41, 52]
リストのソートについては、下記の記事で詳しく紹介しています。
ソートのオプションの指定方法や、降順でのソート方法なども紹介しています。
リストの要素の比較
リストを要素を比較する方法について紹介します。
要素の比較に便利な「set」の使い方
リストの比較をする際には、「set」を使用すると便利です。
set型は、集合を表すデータ型です。
リストと同様に、複数の要素で構成されますが、リストとは異なり、要素には順番はありません。
また、それぞれの要素は重複しない、という特徴もあります。
これらの特徴を活かし、リストをset型に変換することで、リストの要素を比較できます。
リスト型からset型への変換は、set( )で変換可能です。
以下が、リスト型からset型への変換のサンプルコードです。
### リスト型からset型へ変換するサンプルコード
fruits = ["Apple", "Banana", "Orange", "Banana"]
set_fruits = set(fruits)
print(set_fruits)
print(type(set_fruits))
# {'Orange', 'Banana', 'Apple'}
# <class 'set'>
set型に変換されると、リストの重複した要素がなくなることが分かると思います。
また、setには順番がないため、リストとは並び順が変わって表示されます。
2つのリストを比較し、一致するか確認
2つのリストを比較し、一致するか判定する方法を紹介します。
リストをset型に変換してから比較することで、
順番によらず、要素が共通しているかだけで比較できるようになります。
### リストをset型に変換してから比較するサンプルコード
fruits_1 = ["Apple", "Banana", "Orange"]
fruits_2 = ["Apple", "Lemon", "Orange"]
fruits_3 = ["Banana", "Orange", "Apple"]
print(set(fruits_1) == set(fruits_2))
# False
print(set(fruits_1) == set(fruits_3))
# True
リストの要素の比較については、下記の記事で詳しく紹介しています。
2つのリストの差分の要素を抽出する方法なども紹介しています。
スポンサーリンク
リストの要素の検索方法
リストの要素を検索する方法について紹介します。
値がリストに含まれているか調べるためには、" in演算子 " を使用します。
リスト内に値が含まれる場合は、Trueが返されます。
書き方
値 in リスト
以下、サンプルコードです。
### 要素を in演算子 で検索し、リストに含まれるか調べる
fruits = ["Apple", "Banana", "Orange"]
print("App" in fruits)
# False
print("Apple" in fruits)
# True
サンプルコードから分かる通り、
"in演算子" は、完全一致での検索になります。
リストの要素の検索方法については、下記の記事で詳しく紹介しています。
部分一致での要素の検索方法なども紹介しています。
リストの要素数をカウント(特定の要素)
リストの特定の要素の個数をカウントする方法について紹介します。
リスト内に含まれる、特定の要素の数をカウントする場合は、countメソッドを使用します。
書き方
リスト.count( 値 )
以下、サンプルコードです。
### リストに含まれる特定の要素の個数をカウント
fruits = ["Apple", "Banana", "Orange", "Bana", "Banana"]
print(fruits.count("Apple"))
# 1
print(fruits.count("Ban"))
# 0
リストの要素数をカウントする方法については、下記の記事で詳しく紹介しています。
2次元リストの要素のカウント方法なども紹介しています。
スポンサーリンク
リストの要素の四則演算、平均の計算方法
リストの要素の四則演算や、平均を計算する方法を紹介します。
さまざまな演算方法がありますが、ここでは簡単な計算を紹介します。
リスト(list)内の要素の足し算(合計)【sum関数】
リスト内の要素の和は、sum関数で簡単に計算できます。
### リスト内の要素の和を計算【sum関数】
num_list = [1, 2, 3, 4, 5]
print(sum(num_list))
# 15
リスト(list)の要素の平均【sum / lenで計算】
リストの要素の平均は、sum関数とlen関数を用いて算出できます。
以下、リストの要素の平均を算出するサンプルコードです。
### sum関数とlen関数を用いて、リストの要素の平均を算出
num_list = [1, 2, 3, 4, 5]
mean = sum(num_list)/len(num_list)
print(mean)
# 3.0
リストの要素の演算については、下記の記事で詳しく紹介しています。
要素のさまざまな演算方法について、サンプルコードを交えながら紹介しています。
リストの要素をstr型やint型へ変換する方法
リストの要素を、str型やint型へ変換する方法について紹介します。
str型、int型への変換は、それぞれ下記のように記述します。
型変換の書き方
str型への変換 : str(値)
int型への変換 : int(値)
1次元のリスト(list)の要素をstr型やint型に変換する【map関数】
リストの要素の型変換は、map関数を用いると便利です。
map関数を使用することで、リストのすべての要素に、特定の関数の処理を適用することができます。
map関数の書き方
map(関数, リスト)
### map関数を用いて、1次元のリストの要素をstr型に変換する
list_1 = [11, 12, 13, 14]
list_1_str = map(str, list_1)
print(list_1_str)
# <map object at 0x0000026AB7447C88>
print(list(list_1_str))
# ['11', '12', '13', '14']
map関数は、map型のオブジェクトを返します。
そのため、そのままprint( )で表示しても、変換後のリストの要素は確認できません。
要素を取得したい場合は、list( )でリストに変換する必要があります。
リストの要素の型変換については、下記の記事で詳しく紹介しています。
要素の型変換を、より簡潔なコードで実現する方法なども紹介しています。
2次元リストの転置方法。行と列の入れ替え。
2次元リストを転置する方法について紹介します。
numpyという数値計算ライブラリを用いると、簡単に2次元配列を転置できます。
リストをnumpy型に変換した後に、「 .T 」を付与するだけで転置できます。
以下、サンプルコードです。
### numpyを利用して、2次元配列を転置するサンプルコード
import numpy as np
matrix = [
[11, 12, 13, 14],
[21, 22, 23, 24],
[31, 32, 33, 34],
]
print(type(matrix))
# <class 'list'>
matrix_np = np.array(matrix)
print(type(matrix_np))
# <class 'numpy.ndarray'>
matrix_np_t = matrix_np.T
print(matrix_np_t)
"""
[[11 21 31]
[12 22 32]
[13 23 33]
[14 24 34]
"""
matrix_np_t_list = matrix_np_t.tolist()
print(type(matrix_np_t_list))
# <class 'list'>
最後の、
matrix_np_t_list = matrix_np_t.tolist()
print(type(matrix_np_t_list))
の部分は無くても問題ありません。
numpy型の配列を、リストに戻しています。
2次元リストの転置については、下記の記事で詳しく紹介しています。
forループを用いて泥臭く転置する方法も紹介しています。転置の処置のイメージが湧くかと思います。
スポンサーリンク
リストをcsvへ出力
リストをcsvへ出力する方法について紹介します。
リストをcsvへ出力する方法はいくつかありますが、ここでは「csvモジュール」を用いた方法を紹介します。
リストを新規のcsvファイルに出力するサンプルコードを紹介します。
### リストをcsv出力する(csvモジュール)
import csv
list_1 = [
["No.", "Fluits", "Price"],
[1, "Apple", 100],
[2, "Banana", 200],
[3, "Orange", 100]
]
excel_path = r"C:\***** 任意の保存先 *****\test.csv"
with open(excel_path, 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(list_1)
>writer.writerows(list_1)
writerオブジェクトを、writerows( )メソッドにすることで、リストの複数行を一気にcsvファイルに書き込んでいます。
リストをcsvへ出力する方法については、下記の記事で詳しく紹介しています。
csvモジュール以外に、pandasを用いた方法も紹介しています。また、すでにあるcsvファイルに追記する方法なども紹介しています。
リストをExcelへ出力
リストをExcelへ出力する方法について紹介します。
リストをExcelへ出力する方法はいくつかありますが、ここでは「openpyxl」を用いた方法を紹介します。
下記は、新規でExcelのworkbookを作成するサンプルコードになります。
### openpyxlの基本的な使い方
import openpyxl
excel_path = r"C:\***** 任意の保存先 *****\test.xlsx"
wb = openpyxl.Workbook()
sheet = wb.worksheets[0]
sheet.cell(2, 1, "Apple")
wb.save(excel_path)
wb.close()
リストをExcelへ出力する方法については、下記の記事で詳しく紹介しています。
すでにあるExcelファイルに追記する方法なども紹介しています。
またコードについて随時解説を入れているので、openpyxlの使用方法の理解が深まると思います。
スポンサーリンク
まとめ
pythonのリストの基本的な使い方について、広く浅く紹介しました。
リストはpythonでコードを作成するうえで避けては通れませんので、自分で手を動かして使いこなせるようにしておきましょう。
スポンサーリンク