【Python】リスト型の使い方

Pythonでリストを使う方法をソースコード付きで解説します。

スポンサーリンク

Pythonのリスト型とは

本ページの内容は、以下動画で解説しています。

リストとは、データを一列に並べたものです。
リストに格納されたデータ1つのことを要素といいます。
また、データが格納された順番のことをインデックス(要素番号)といいます。

Pythonのリストは、カンマ( , )で区切ったデータ(要素)を角括弧[ ]で括ることで作成できます。
(要素の値はすべて同じ型にする必要はありません)

list1 = [95, 30, 75, 42, 56]
list2 = ["hello", "world", 1, 2, 3] 

list2のように文字列と整数型の要素を1つのリストに格納できます。
※ちなみに、C言語の配列だと同じ型のデータしか格納できません。

スポンサーリンク

リストの要素にアクセス

Pythonのリストでは、インデックス(要素番号)は0から始まります
リストの各要素(データ)へアクセスするには角括弧[ ]でインデックスを指定します。
1~3番目の要素にアクセスするサンプルコードです。

# -*- coding: utf-8 -*-
list = [95, 30, 75, 42, 56]

# 0番目の要素を表示
print( list[0] )  # 95

# 1番目の要素を表示
print( list[1] )  # 30

# 2番目の要素を表示
print( list[2] )  # 75
【Python】リストの要素を取得
この記事では、Python言語でインデックスを指定してリストの要素にアクセスし、値を取得する方法をソースコード付きで解説します。
スポンサーリンク

リストの末尾要素にアクセス

リストの末尾(1番最後)の要素へアクセスするにはインデックスに-1を指定します。( list[-1] )

# -*- coding: utf-8 -*-

list = [95, 30, 75, 42, 56]

# 1番最後の要素を表示
print( list[-1] )  # 56

ちなみに後ろから2番目を指定する場合はlist[-2]となります。
このようにインデックスを -1, -2, -3…と指定することで要素の最後からアクセスできます。

【Python】リストの末尾の要素値を取得
この記事では、Python言語でリストの末尾(最後)にある要素にアクセスし、値を取得する方法をソースコード付きで解説します。

リストの末尾に要素追加(list.append)

Pythonでは、appendメソッドを使うことで、リストの末尾(1番最後)に要素を追加できます。
リストの末尾に要素xを追加します。
appendメソッドでリストの末尾に要素を追加するサンプルコードです。

# -*- coding: utf-8 -*-
list = [95, 30, 75, 42, 56]

x = 79

list.append(x)

print(list) # [95, 30, 75, 42, 56, 79]
【Python】リストの末尾に要素追加(append関数)
この記事では、Python言語でリストの末尾(最後)に要素を追加する方法をソースコード付きで解説します。

リストの任意の場所に要素追加(list.insert)

Pythonでは、insertメソッドを使うことで、リストの任意の場所(インデックス)に要素を追加できます。

■書式

list.insert(n, x)

リストのn番目に要素xを追加します。

■サンプルコード
insertメソッドでリストの1番目に要素79を追加するサンプルコードです。

# -*- coding: utf-8 -*-

list = [95, 30, 75, 42, 56]

x = 79

list.insert(1, x)

print(list) # [95, 79, 30, 75, 42, 56]
【Python】リストに要素を追加(insert)
この記事では、Python言語でリスト(配列)に要素を追加する方法をソースコード付きで解説します。

リストの要素を削除(del文、list.pop、list.remove)

Pythonでは、del文やpop, removeメソッドを用いることで要素を削除できます。

書式
1 del list[n]
2 list.pop(n)
3 list.remove(obj)

del文はリスト(list)からn番目の要素を削除できます。
popメソッドも同様にリスト(list)からn番目の要素を削除できます。
removeメソッドはリスト(list)から指定したオブジェクト(obj)を持つ要素を削除できます。(複数ある場合は、最初の要素のみ削除)

■サンプルコード
del, pop, removeメソッドを用いてリストの1番目にある要素「30」を削除するサンプルコードです。

# -*- coding: utf-8 -*-

list = [95, 30, 75, 42, 56]
del list[1]
print( list ) # [95, 75, 42, 56]

list = [95, 30, 75, 42, 56]
list.pop(1)
print( list ) # [95, 75, 42, 56]

list = [95, 30, 75, 42, 56]
list.remove(30)
print( list ) # [95, 75, 42, 56]
【Python】リストの要素削除(del, pop, remove)
この記事では、リスト(配列)の要素を削除する方法をソースコード付きで解説します。

リストの要素を調べる(list.index, list.count, in演算子)

Pythonでは、index, countメソッドやin演算子を用いることで要素を調べることができます。

記法 説明
list.index(obj) 指定したオブジェクト(obj)がリスト(list)の要素に含まれていた場合、その位置(インデックス)を取得できます 。
list.count(obj) 指定したオブジェクト(obj)がリスト(list)の要素に含まれていた場合、その個数を取得できます 。
obj in list in演算子では、指定したオブジェクト(obj)がリスト(list)の要素に含まれているかどうかをチェックできます。(含まれていればTrue、そうでなければFalseを返します)

■サンプルコード

# -*- coding: utf-8 -*-

list = [95, 30, 75, 42, 56, 30]

print( list.index(30) )  # 1
print( list.count(30) )  # 2
print( 30 in list )  # True
【Python】リストの要素確認(index, count, in演算子)
この記事では、Python言語でスト(配列)の要素を確認する方法をソースコード付きで解説します。

リストのインデックスを複数取得(内包表記)

Pythonでは、内包表記を用いてリスト内の同じ値をもつ要素のインデックスを取得できます。

書式

indexes = [i for i, e in enumerate(list) if e == 3]

■ソースコード

#-*- coding:utf-8 -*-

# リスト生成
data = [1,2,3,4,5,4,3,2,1]

# 値3をもつ全てのインデックス
indexes = [i for i, e in enumerate(data) if e == 3]

# 結果表示
print(indexes) # [2, 6]
【Python】リストから指定した値をもつ要素インデックスを取得
この記事では、Pythonを用いてリスト内の同じ値をもつ要素のインデックスを複数取得する方法をソースコード付きで紹介します。

リストから要素を順番に抽出(for文 + in演算子)

Python3では、for文+in演算子で、リストから要素を順番に抽出できます。
(他言語のfor each文と同様)

【書式】

for 変数名 in リスト名:

【処理内容】
①リストの要素数だけ繰り返し処理が発生
②1回繰り返しが行われる毎に、指定した変数に要素の値が代入されていきます。
(例)2回目の繰り返し処理中は、変数に2番目の要素値が入る

■ソースコード

#-*- coding:utf-8 -*-
import sys

# リスト宣言
array = ["沖田", "武蔵", "モードレッド"]

# インデックスと要素を取り出し
for e in array:
    print(e)

"""
沖田
武蔵
モードレッド
"""
【Python】for文+inでリストから要素抽出(for-each)
この記事では、Python言語のfor文+inでリストから要素を順番に取り出す方法をソースコード付きで解説します。

リストから要素とインデックスを抽出(for文 + enumerate)

Python3では、for文+enumerateで、リストから要素とインデックス(要素番号)を抽出できます。

書式

for 変数名1, 変数名2 in enumerate(リスト名):

※変数1に要素番号、変数2に値が代入されます。
for文はリストの要素数だけループします。

■サンプルコード

#-*- coding:utf-8 -*-
# リスト宣言
array = ["沖田", "武蔵", "モードレッド"]

# インデックスと要素を取り出し
for i, e in enumerate(array):
    print("要素番号:", i, ", 値:", e)

"""
要素番号: 0 , 値: 沖田
要素番号: 1 , 値: 武蔵
要素番号: 2 , 値: モードレッド
"""
【Python】for文+enumerateでリストから要素とインデックス抽出
この記事では、Python言語のfor文+enumerateでリストから要素とインデックス(要素番号)を抽出する方法をソースコード付きで解説します。

リストの各要素に関数を適用(map関数)

Python3にはリストの各要素に対して処理できる「リスト関数」があります。
そのうちの1つでありmap関数を使うことで、リストの各要素に関数を適用できます。

書式

map(関数, リスト)

■ソースコード

# 関数定義
def func(x):
        return x * 2

data = [1, 2, 3, 4, 5]

# 関数方式
map1 = map(func, data)

# lambda方式
map2 = map(lambda x: x * 2, data)

# 結果表示
print( list(map1) ) # [2, 4, 6, 8, 10]
print( list(map2) ) # [2, 4, 6, 8, 10]

※リストの各要素に値を2倍する関数を適用しています。
※map関数の返り値からlist関数でリストを取り出せます。

【Python】リスト関数mapの使い方
この記事では、Python言語のリスト関数mapで各要素に関数を適用する方法をソースコード付きで解説します。

リストの各要素に対して処理(リスト関数 filter)

Python3にはリストの各要素に対して処理できる「リスト関数」があります。
そのうちの1つであるfilter関数を使うことで、特定の条件を満たす要素のみ取り出せます。

【書式】

filter(関数, リスト)

※リストの各要素について順番に関数を順番に適用します。
そして、trueが返された要素のみからなるリストを返します。

■サンプルコード

# 関数定義
def func(x):
    if(x%2 != 0): return True
    else: return False

data = [1, 2, 3, 4, 5]

# 関数方式
filtered = filter(func, data)

# 結果表示
print( list(filtered) ) # [1, 3, 5]

※奇数のみをリスト形式で取り出します。
※filter関数の返り値からlist関数でリストを取り出せます。

【Python】リスト関数filterの使い方
この記事では、Python言語のリスト関数filterで条件を満たす要素のみ取り出す方法をソースコード付きで解説します。

リストの要素の順序を反転およびソート(list.reverse、list.sort)

Pythonでは、リストオブジェクトの要素順序の反転にreverseメソッド、ソートにはsortメソッドを使います。

書式
順序反転 list.reverse()
ソート list.sort()

■サンプルコード

# -*- coding: utf-8 -*-

# リストの生成
data = [2, 1, 4, 3]

# リストの反転
data.reverse() # [3, 4, 1, 2]
print(data)

# リストのソート
data.sort()
print(data) # [1, 2, 3, 4]
【Python】リストの順序反転・ソート
リストの順序を反転したりソートして要素を並べ替える方法についてPython入門者向けにまとめました。

関連ページ

【Python超入門】使い方とサンプル集
Pythonとは、統計処理や機械学習、ディープラーニングといった数値計算分野を中心に幅広い用途で利用されている人気なプログラミング言語です。 主な特徴として「効率のよい、短くて読みやすいコードを書きやすい」、「ライブラリが豊富なのでサクッと...

コメント

  1. 名無しさん より:

     解説が詳しくて豊富なサンプルプログラムでとても役にたっています。これなら
    Pythonが上達しそうです。

    • 管理人 より:

      コメントありがとうございます。
      そう言っていただけますととても嬉しいです。
      今後ともよろしくお願いいたします。