【python】リストの使い方

2020年5月17日

①リストの宣言方法

複数の変数をひとまとめで扱いたいときに使用されるのがリストです。
他の言語でいう配列に相当します。
pythonでデフォルトで用意されているものですが、他の言語と自由度は高いです。
リストは宣言時に要素数を決める必要がありません。
c言語やjavaなどは最初に配列の要素数を宣言すると増やすことはできません。
javaでも importすることでList型を使用して同じことはできますが、pythonでは宣言の必要もなく角括弧でまとめて宣言することができます。

リスト内は全て同じ型のアイテムにする必要はありません。異なる型をリストに入れても自動的にリストを作成してくれます。
非常に簡単で自由度の高い宣言ができることはpythonの大きな強みです。

ソースコード

def sample1():
    list1 = [ 6, 3, 54, 76, 325 , 67467 ]
    list2 = [ "茶トラ", "サバトラ", "白猫", "三毛猫", "黒猫" ]
    list3 = [ True, False, True, False, False ]
    list4 = [ 1, "サバトラ", True, "三毛猫", "黒猫" ]

    print( "型 :",type(list1) , " 内容 :" , list1 )
    print( "型 :",type(list2) , " 内容 :" , list2 )
    print( "型 :",type(list3) , " 内容 :" , list3 )
    print( "型 :",type(list4) , " 内容 :" , list4 )

実行結果

型 : <class 'list'>  内容 : [6, 3, 54, 76, 325, 67467]
型 : <class 'list'>  内容 : ['茶トラ', 'サバトラ', '白猫', '三毛猫', '黒猫']
型 : <class 'list'>  内容 : [True, False, True, False, False]
型 : <class 'list'>  内容 : [1, 'サバトラ', True, '三毛猫', '黒猫']

②リスト(list)の使い方 for文でアイテムを取り出す

ソースコード

def sample2():
    list = [ 1, "サバトラ", True, "三毛猫", "黒猫" ]
    for tmp in list:
        print( "型 :", type(tmp), " 内容 :",tmp)

実行結果

型 : <class 'int'>  内容 : 1
型 : <class 'str'>  内容 : サバトラ
型 : <class 'bool'>  内容 : True
型 : <class 'str'>  内容 : 三毛猫
型 : <class 'str'>  内容 : 黒猫

③リスト(list)の使い方 インデックス参照でアイテムを取り出す

リストに格納したアイテムを一つ選択して取り出したときはインデックス値(番号)を使用して直接参照します。
他言語でいいますと配列を参照するのとほぼ変わりません。

ソースコード

def sample3():
    list = [ 4, "キジトラ", True, "たけのこ", "くじら" ]

    tmp0 = list[0]
    tmp1 = list[1]
    tmp2 = list[2]
    tmp3 = list[3]
    tmp4 = list[4]

    print( "型 :",  type(tmp0), " 内容 :", tmp0 )
    print( "型 :",  type(tmp1), " 内容 :", tmp1 )
    print( "型 :",  type(tmp2), " 内容 :", tmp2 )
    print( "型 :",  type(tmp3), " 内容 :", tmp3 )
    print( "型 :",  type(tmp4), " 内容 :", tmp4 )

実行結果

型 : <class 'int'>  内容 : 4
型 : <class 'str'>  内容 : キジトラ
型 : <class 'bool'>  内容 : True
型 : <class 'str'>  内容 : たけのこ
型 : <class 'str'>  内容 : くじら

④リストの追加(append)

リストの最後尾にアイテムを追加する方法です。

第1引数 : 追加したいアイテム ・・・ 型はなんでも大丈夫です。python側が自動判別してリストに追加してくれます。

list.append( 【追加したいアイテム】 )

ソースコード

def sample4():
    list = [ 2,4,5,6 ]
    list_add = [ "aaa" ,"bbb" ]
    list.append( 7 ) #最後尾に7を追加
    print(list) #[2, 4, 5, 6, 7]
    
    list = [ 2,4,5,6 ]
    list_add = [ "aaa" ,"bbb" ]
    list.append(list_add)#最後尾にlist_addを追加
    print(list) #[2, 4, 5, 6, ['aaa', 'bbb']]

⑤リストとリストを繋げる(extend)

二つのリストを繋げたいときに使用します。

 【前に繋げたいリスト】.extend(【後ろに繋げたいリスト】)

ソースコード

def sample5():
    list = [ 2,4,5,6 ]
    list_add = [ "aaa" ,"bbb" ]
    list.extend(list_add)#リストを繋げる
    print(list) #[2, 4, 5, 6, 'aaa', 'bbb']

⑥リストにアイテムを挿入する(insert)

list.insert( 【インデックス】,【アイテム】)
def sample6():
    list = [ 0, 1, 2, 3, 4, 5  ]
    list.insert( 0,100)#0番目に「100」を追加
    print(list)  #[0, 1, 100, 2, 3, 4, 5]

    list = [ 0, 1, 2, 3, 4, 5  ]
    list.insert( 2,200)#2番目に「200」を追加
    print(list)  #[200, 0, 1, 2, 3, 4, 5]

    list = [ 0, 1, 2, 3, 4, 5  ]
    list.insert( 7,300)#10番目に「300」を追加(要素数より多いので最後尾に挿入される)
    print(list)  #[0, 1, 2, 3, 4, 5, 300]

    list = [ 0, 1, 2, 3, 4, 5  ]
    list_add = [ "aaa" ,"bbb" ]
    list.insert( 3,list_add)#3番目にlist_addを追加
    print(list)  #[0, 1, 2, ['aaa', 'bbb'], 3, 4, 5]

⑦リストのアイテムを削除する(remove)

右から探して一致したアイテムを削除します。

list.remove( 【削除したいアイテム】 ) 
def sample7():
    list = [ 11, 22, 33, 11, 22, 33, "aa", "bb", "aa", True, [ 1 ,2 ] ]
    print(list)       #[11, 22, 33, 11, 22, 33, 'aa', 'bb', 'aa', True, [1, 2]]

    list.remove(11)   #一番左側の「11」を削除
    print(list)       #[22, 33, 11, 22, 33, 'aa', 'bb', 'aa', True, [1, 2]]

    list.remove(11)   #「11」を削除
    print(list)       #[22, 33, 22, 33, 'aa', 'bb', 'aa', True, [1, 2]]

    list.remove(True) #「True」を削除
    print(list)       #[22, 33, 22, 33, 'aa', 'bb', 'aa', [1, 2]]

    list.remove("aa") #一番左側の「11」を削除
    print(list)       #[22, 33, 22, 33, 'bb', 'aa', [1, 2]]

    list.remove("aa") #「11」を削除
    print(list)       #[22, 33, 22, 33, 'bb', [1, 2]]

    list.remove([ 1 ,2 ]) #「[ 1 ,2 ]」を削除
    print(list)       #[22, 33, 22, 33, 'bb']

    try:
        list.remove("cc")   #リストに無いものを削除するとエラー
    except:
        import traceback        #Traceback (most recent call last):
        traceback.print_exc()   #  File "List.py", line 101, in sample7
                                #    list.remove("cc")   #リストに無いものを削除するとエラー
                                #ValueError: list.remove(x): x not in list                          

⑧リストのアイテムを削除する(pop)

list.pop( 【削除したいアイテムのインデックス】 ) 

ソースコード

def sample8():
    list = [ 0, 1, 2, 3, 4, 5 ]
    list.pop(0)   #0番目のアイテムを削除
    print(list)

    list = [ 0, 1, 2, 3, 4, 5 ]
    list.pop(3)   #3番目のアイテムを削除
    print(list)

    list = [ 5, 1, 2, 3, 4, 5 ]
    list.pop(5)   #5番目のアイテムを削除
    print(list)

    try:
        list = [ 0, 1, 2, 3, 4, 5 ]
        list.pop(6)   #6番目のアイテムを削除 存在しないアイテムを参照してエラー発生
    except:
        import traceback       #Traceback (most recent call last):
        traceback.print_exc()  #  File "List.py", line 123, in sample8
                               #    list.pop(6)   #6番目のアイテムを削除 存在しないアイテムを参照してエラー発生
                               #IndexError: pop index out of range

⑨リストの加算(extendと同じ)

演算子を使用してリストを繋げることができます

list = list1 + list2

ソースコード

def sample9():
    list = [ 2,4,5,6 ]
    list_add = [ "aaa" ,"bbb" ]
    list = list + list_add
    print(list) #[2, 4, 5, 6, 'aaa', 'bbb']

ソースコードはこちらから

このページで紹介している記事のソースコードの販売を行っています。
python基本を押さえたソースコードを収録しています。
購入頂いたソースコードは商用利用OKになります。

ソースコードの販売はこちら