型 リスト

リストとは、よく配列という風にも言われる型で、[1, 2, 3, 4, 5]このような形で複数の値が順に格納されているものをいいます。

ここで学習すること

  • 型としてのリスト
  • リストへの変換
  • リストを文字列に変換

説明

型としてのリスト

リストに格納できるのは、intなどの数値以外にstr、それにそれらを混ぜることも出来ますし、何だったらリストも入れられちゃいます。

list01.py

#!/usr/bin/env python3.8

list1 = [1, 2, 3, 4, 5]
print(list1)

list2 = ["a", "b", "c"]
print(list2)

list3 = [1, "b", 3, "d"]
print(list3)

list4 = [list1, list2]
print(list4)


実行

$ python list01.py 
[1, 2, 3, 4, 5]
['a', 'b', 'c']
[1, 'b', 3, 'd']
[[1, 2, 3, 4, 5], ['a', 'b', 'c']]
$ 

入れたものを処理するときは主にfor-inを使います。それから3番目の要素にアクセスしたいときは、以下のように最初を0番目として数えて2と指定することでアクセスできます。範囲を指定したり、リスト同士を足すことも出来ます。

list02.py

#!/usr/bin/env python3.8

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

for val in list1:
    print(val)
print("--")

print(list1[2])
print(list1[1:3])

list2 = [6, 7, 8]
print(list1 + list2)

実行

$ python list02.py 
1
2
3
4
5
--
3
[2, 3]
[1, 2, 3, 4, 5, 6, 7, 8]
$ 

その他、マイナスを指定して後から数えたりもできます。

リストへの変換

最もあると思われるのは、”AAA,BBB,CCC”にようにカンマ区切りになっている文字列を受け取っていて、それをリストにしたいなどです。その他、リストからリストの変換としてリスト内包などもあります。

list03.py

#!/usr/bin/env python3.8

x = "AAA,BBB,CCC"
print(x.split(","))

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

str_list = [str(val) for val in int_list]

print(int_list)
print(str_list)
$ python list03.py 
['AAA', 'BBB', 'CCC']
[1, 2, 3, 4, 5]
['1', '2', '3', '4', '5']
$ 

リストを文字列へ変換

他の型の説明ではこの向きの説明はしていないので、ちょっと脱線なのですが、よく使う上にとても特徴的なやり方なので、ここでご紹介します。

リストをカンマで連結して1つの文字列にするというものです。

list04.py

#!/usr/bin/env python3.8

list = ["aaa", "bbb", "ccc"]
list_str = ",".join(list)

print(list_str)

実行

$ python list04.py 
aaa,bbb,ccc
$ 

str側のメソッドにjoin()というものがあり、その引数にリストを渡すというものです。気分的にはlist側のメソッドにjoin()があって、その引数にカンマを渡したい気分ですが…