2

私がリストを持っている場合:

lista=[99, True, "Una Lista", [1,3]]

次の表現はどういう意味ですか?

mi_var = lista[0:4:2]
4

3 に答える 3

8

この構文lista[0:4:2]拡張スライス構文と呼ばれ、インデックス0(包括的)から4(排他的)までの要素で構成されるリストのスライスを返しますが、偶数のインデックスのみが含まれます(ステップ= 2)。

あなたの例では、それは与えるでしょう[99, "Una Lista"]。より一般的には、lista [:: 2]と書くことで、偶数のインデックスにあるすべての要素で構成されるスライスを取得できます。これは、開始パラメーターと終了パラメーターのデフォルトがそれぞれ0とリストの長さであるため、リストの長さに関係なく機能します。

スライスの興味深い機能の1つは、スライスを割り当てて元のリストを変更したり、スライスを削除して元のリストから要素を削除したりできることです。

>>> x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x[::2] = ['a', 'b', 'c', 'd', 'e']   # Assign to index 0, 2, 4, 6, 8
>>> x
['a', 1, 'b', 3, 'c', 5, 'd', 7, 'e', 9]
>>> del x[:5]                            # Remove the first 5 elements
>>> x
[5, 'd', 7, 'e', 9]
于 2010-10-26T19:11:10.313 に答える
0

リストを0から3まで繰り返します(4は除外されているため、[start、end))2つの要素をステップオーバーします。この結果は[99, 'Una Lista']期待どおりであり、リストに保存されます。mi_var

于 2010-10-26T19:11:46.270 に答える
0

実行して確認する1つの方法:

>>> lista=[99, True, "Una Lista", [1,3]]
>>> lista[0:4:2]
[99, 'Una Lista']

listaこれはスライス表記であり、インデックスから始まり、インデックス0を含まないまでの1秒おきの要素で構成される新しいリストを作成します。4

于 2010-10-26T19:11:50.477 に答える