66

Python リストをスライスする方法がわかりません。次のように説明します。

>>> test = range(10)
>>> test
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> test[3:-1]
[3, 4, 5, 6, 7, 8]
>>> test[3:0]
[]
>>> test[3:1]
[]
>>> test
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

私の理解では、python スライスは lst[start:end] を意味し、開始を含み、終了を除きます。では、要素 n から始まるリストの「残り」を見つけるにはどうすればよいでしょうか。

ご協力ありがとうございました。

4

7 に答える 7

102

値を指定しないと、スライスの一方の端を開いたままにすることができます。

test[3:] = [3, 4, 5, 6, 7, 8, 9]
test[:3] = [0, 1, 2]
于 2009-03-07T05:19:31.193 に答える
100

範囲エンドポイントとして変数を使用している場合は、を使用できますNone

 start = 4
 end = None
 test[start:end]
于 2009-03-07T08:15:31.380 に答える
15

単に末尾を省略します。

test[n:]
于 2009-03-07T05:19:40.943 に答える
0

あなたが探しているのは、次のようなものを使用することです:

inputs = "ababbbaAab"
for i in range(n):
    print(i, inputs[:i] + inputs[i:i+1])

出力:

0 a
1 ab
2 aba
3 abab
4 ababb
5 ababbb
6 ababbba
7 ababbbaA
8 ababbbaAa
9 ababbbaAab

場合はそれを参照してくださいi == 0

それからinputs[:i] == []そしてinputs[i:i+1] == a

で、もしi == len(inputs) - 1

それからinputs[:i] == [ababbbaAa]そしてinputs[i:i+1] == b

于 2020-09-30T22:35:47.497 に答える