2

私はPythonが初めてで、これを見つけたいくつかのテストを行っています。

>item="testing315testing08634567890"
>item.index("086")
17
>item[17:10]
''
>item[17:]
'08634567890'

他の文字列では機能するのに、なぜ機能しないのかわかりません。私がこれを行う場合、注意してください...

> item[4:10]
'ing315'

真ん中の数字が邪魔?これはバグですか?私は何かを逃しましたか?私はPython 3.3を使用しています

4

4 に答える 4

2

リスト スライスの終了インデックスは、開始インデックスよりも大きい位置にあり、スライスのサイズではありません! だからあなたはこのようなものが欲しい:

item[17:len(item)]

これは前のスニペットとまったく同じであることに注意してください。

item[17:]

のようなスライスの開始インデックスと終了インデックスは、alist[a:b]次のように解釈する必要があります。スライスは、 の位置にあるアイテムで始まり、 のa位置alistの 1 要素前で終了balistます。abはどちらも のインデックスですalist

于 2013-04-25T00:32:18.647 に答える
0

そのような範囲で文字列にインデックスを付ける場合、次のように、下限を最初に配置し、上限を 2 番目に配置する必要があります。

item[10:17]

a次のように、「この文字列をto b(b除外する場所)から取得したい」と言っていると考えてください。

some_string[a:b]

文字列を最後まで (または最初から) 表示したい場合は、単純に境界を省略できます。

次に例を示します。

my_string = "test"
my_string[:2]       ==> "te"
my_string[2:]       ==> "st"
my_string[:]        ==> "test"
my_string[1]        ==> "e"
my_string[1:3]      ==> "es"
于 2013-04-25T00:31:30.230 に答える
0

インデックスの 2 番目の数値は、最初の数値よりも大きくする必要があります。例えば:

item[17:17]
item[17:10]
item[17:17-1]

全部戻ってくる、

''

一致したインデックスの後に 10 文字を取得する場合は、次のようにすることができます。

>item="testing315testing08634567890"
>item[item.index("086") : item.index("086")+10]
'0863456789'
于 2013-04-25T01:09:21.783 に答える