6
Pythonインタプリタによって実行されると、このコードはどのようにエラーをスローしませんか。Pythonリストの不思議な振る舞い
a = ['A', 'B', 'C']
a[20:] = ['D', 'E']
print a
出力は['A', 'B', 'C', 'D', 'E']
です。 a
には3つの要素しかないので、Pythonが2番目の文にエラーを表示すると思いました。この機能はコーディング中に自然に使用されますか?
これは、 'a [20:]'を読むよりはるかに意味がありません。 'assert ['D'、 'E'] == a [20:]'はここでは失敗します。 – Eric
これは、スライスのインデックス作成の仕方には意味があります。 'a [3:] == a [20:]'から、Cレベルで内部実装されているため、nullの場合は単に要素を追加するか、選択した範囲を上書きします。 –
@Eric: 'a [20:]'は空のリストを返します。 – tuxtimo