-3

私は Python を初めて使用し、「必要に応じて Python 配列のサイズが自動的に拡張される」と誰かから言われました。

本当ですか?Python 3.3.2 のドキュメントでは見つかりませんでした。質問に答える本物のリソースまたはガイダンス。ありがとう。

4

2 に答える 2

4

「自動的に」の意味によって異なります。

>>> foo = list()
>>> foo.append(1)
>>> foo
[1]
>>> foo[1] = 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>> foo[1:] = [0]
>>> foo
[1, 0]

そのappendため、新しい要素を収容するためにリストの長さを増やします。インデックスの割り当ては配列を拡張しません。スライスの割り当ては配列を拡張します。

于 2013-11-11T13:07:50.677 に答える
3

そのステートメントは、メモリ内のスペース割り当てを参照しています。そして、はい、それは本当です!. Python ではサイズに制限がないため、リスト (配列ではなく、これは Python です) を作成し、好きなように展開、拡張、変更できます。

>>> l = [1, 2]
>>> l.extend([3, 4, 5, 6])
>>> l
[1, 2, 3, 4, 5, 6]

ここでは、l最初は 2 つのアイテムがあり、その後拡張され、現在は 6 つのアイテムがあることがわかります。

次に、短くすることもできます。

>>> l.pop()
6
>>> l
[1, 2, 3, 4, 5]

これにより、リストの最後の項目が削除されます。

リストを変更するにはさまざまな方法があります。詳細については、こちらを参照してください。お役に立てれば!

于 2013-11-11T13:07:10.980 に答える