【Python】リストの作成方法

PythonのTopに戻る


※必要に応じて「【Python】全要素が0の任意長のリストを作成する方法」のページも参照されたい。

 

 リストを定義する

大抵の場合は次のようにリストを定義する。

number = [8, 6, 1, 42, 13]

print(number)
# [8, 6, 1, 42, 13]
print(number[0])
# 8
print(number[1:4]) # 2 ~ 4 番目の要素を表示
# [6, 1, 42] # 返り値はリストになる

for文などの制御文を利用することで、リスト内に格納した複数の値を順番に処理することができる。なお、Pythonではリストの要素を「0番目」から数え始めるので注意する。

 

 2次元配列(リストのリスト)を定義する

numbers = [[8, 6, 1, 42, 13], [4, -2, 81, 19, 43], [1, 34, -71, 45, -27]]

print(numbers)
# [[8, 6, 1, 42, 13], [4, -2, 81, 19, 43], [1, 34, -71, 45, -27]]
print(numbers[0])
# [8, 6, 1, 42, 13]
print(numbers[1][2:]) # 2行目の 3 番目以降の要素を表示
# [81, 19, 43]
print(numbers[0]+numbers[1]) # 1行目と2行目を結合したリスト
# [8, 6, 1, 42, 13, 4, -2, 81, 19, 43]

これは以下のような行列になっている。$$\left[\begin{array}{ccccc}
8 & 6 & 1 & 42 & 13 \\
4 & -2 & 81 & 19 & 43 \\
1 & 34 & -71 & 45 & -27
\end{array}\right]$$

 

 要素の個数を2倍にする(リストの初期化)

リストに対して「2 * 」とすると要素の個数が2倍になる。

number = 2 * [8, 6, 1, 42, 13]

print(number)
# [8, 6, 1, 42, 13, 8, 6, 1, 42, 13]
print(number[0])
# 8
print(number[4:7]) # 5 ~ 7 番目の要素を表示
# [13, 8, 6]

この方法だと2倍にするだけでなく、何倍にでもできる。ただし「2.0 * 」のようにint型以外を乗算するとエラーとなる。これを応用すると任意の値・要素数でリストを初期化することができる。

 

 range関数を利用する

range関数により作成したイテラブルオブジェクトをlist化すれば整数列のリストを生成することも容易である。この方法は是非覚えておきたい。

list1 = list(range(101))
# 0 から 100 までの整数列のリストを生成

list2 = list(range(1,101))
# 1 から 100 までの整数列のリストを生成

PythonのTopに戻る