Pythonで特定のサイズの空のリストを作成する [重複] 質問する

Pythonで特定のサイズの空のリストを作成する [重複] 質問する

10 個の要素を保持できる空のリストを作成するにはどうすればよいですか?

その後、そのリストに値を割り当てます。例:

xs = list()
for i in range(0, 9):
   xs[i] = i

しかし、それは になりますIndexError: list assignment index out of range。なぜでしょうか?

ベストアンサー1

xs[i] = valueリストが少なくとも 要素で初期化されていない限り、のようなリストに代入することはできませんi+1(最初のインデックスは 0 であるため)。代わりに、 を使用してxs.append(value)リストの末尾に要素を追加します。 (リストではなく辞書を使用している場合は、代入表記を使用できます。)

空のリストを作成する:

>>> xs = [None] * 10
>>> xs
[None, None, None, None, None, None, None, None, None, None]

上記のリストの既存の要素に値を割り当てる:

>>> xs[1] = 5
>>> xs
[None, 5, None, None, None, None, None, None, None, None]

xs[15] = 5リストには要素が 10 個しかないため、次のようなものは依然として失敗することに注意してください。

range(x)は[0, 1, 2, ... x-1]のリストを作成します。

# 2.X only. Use list(range(10)) in 3.X.
>>> xs = range(10)
>>> xs
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

関数を使用してリストを作成する:

>>> def display():
...     xs = []
...     for i in range(9): # This is just to tell you how to create a list.
...         xs.append(i)
...     return xs
... 
>>> print display()
[0, 1, 2, 3, 4, 5, 6, 7, 8]

リストの理解 (範囲の場合はこれをすべて行う必要がないため、正方形を使用し、単に を返すだけで済みますrange(0,9))。

>>> def display():
...     return [x**2 for x in range(9)]
... 
>>> print display()
[0, 1, 4, 9, 16, 25, 36, 49, 64]

おすすめ記事