Python List 初期化
pythonでのlistはデータ型の1種.
初期化
空のlistの宣言
単純に空のlist型を生成します.
list_sample = [] print(list_sample) >>[]
全要素を指定して初期化
初期化時に任意の値を持ったlistを生成します.
list_sample = [1,2,3,4,5] print(list_sample) >>[1, 2, 3, 4, 5]
要素数を指定して初期化
[ A ] * n
* を用いることで データA で埋められたサイズ n のlistが生成できる.
これを使えば要素数を指定してlistを初期化できる
list_sample = [0]*5 print(list_sample) >>[0, 0, 0, 0, 0]
データを持たせたくない場合は
list_sample = [None]*5 print(list_sample) >>[None, None, None, None, None]
内包表記で初期化
内包表記と呼ばれる方法で初期化する方法です.繰り返し(for文など)で記述される処理をシンプルにまとめることができます.
list_sample = [i+2 for i in range(5)]
内包表記で表記された上のコードは
list_sample = [] for i in range(5): list_sample.append(i+2)
と同じ処理をします.これはシンプルなコーディングに役立ちます.
内包表記を使えば逆順や,階差などもっと複雑なlistも宣言できます.
内包表記を使用したlist生成
自然数からなる数列.
list_sample = [i for i in range(5)] print(list_sample) >>[0, 1, 2, 3, 4]
偶数のみの数列.
list_sample = [i*2 for i in range(5)] print(list_sample) >>[0, 2, 4, 6, 8]
range関数を使えば多様なlistも宣言できます
mod(3)=3の数からなる数列
list_sample = [i+1 for i in range(0, 20, 3)] print(list_sample) >>[1, 4, 7, 10, 13, 16, 19]
内包表記とifを組合わせる
list_sample = [X if A else Y for i in range(10)]
条件Aが真の場合 Xが追加され 条件Aが偽の場合は Yが追加されます.
また,以下のように書くこともできます.
list_sample = [X for i in range(10) if A]
この場合は,条件Aが真の場合のみ Xが追加され 条件Aが偽の場合は 何も追加されません.
list_sample = [i+1 if i%2 == 0 else -1 for i in range(10)]
内包表記では表記された上のコードは
list_sample = []
for i in range(10):
if i%2 == 0:
list_sample.append(i+1)
else:
list_sample.append(-1)
と同じ処理をします.
list_sample = list_sample = [i for i in range(20) if i%3 != 0 ]
内包表記では表記された上のコードは
list_sample = []
for i in range(10):
if i%3 == 0:
list_sample.append(i)と同じ処理をします.
このように内包表記を使えば複雑なlistも宣言できます.
内包表記とif使用したlist生成
3の倍数は除いた数列
list_sample = [i for i in range(5)] print(list_sample) >>[0, 1, 2, 3, 4]
偶数のみの数列
list_sample = [i*2 for i in range(5)] print(list_sample) >>[0, 2, 4, 6, 8]
range関数を使えばもっと複雑なlistも宣言できます
mod(3)=3の数からなる数列
list_sample = [i+1 for i in range(0, 20, 3)] print(list_sample) >>[1, 4, 7, 10, 13, 16, 19]
素数のみからなる数列
import math
def isPrimeNumber(n):
if n < 2: return False
for k in range(2, int(math.sqrt(n)) + 1):
if n % k == 0: return False
return True
list_sample = [i for i in range(20) if isPrimeNumber(i)]
print(list_sample)
>>[1, 4, 7, 10, 13, 16, 19]他のコンテナデータ型で初期化
既に存在するlistと同じ要素数のlistを用意する
data_A = [2,5,3,7,9] list_sample_A = [0]*len(data_A) print(list_sample_A) >>[0, 0, 0, 0, 0]
0 件のコメント:
コメントを投稿