這是我在教學生時發現的一個奇怪的Python。使用負指數在Python中訪問整個字符串
如果否定索引應該正確工作,那麼對於字符串m ='string',我執行了以下步驟。
>>> m='string'
>>> m[:-1]
'strin'
>>> m[:0]
''
>>> m[-1]
'g'
>>> m[0:]
'string'
>>> m[:-1]
'strin'
>>> m[:0]
''
>>>
我想知道如何使用負索引訪問整個字符串?
這是我在教學生時發現的一個奇怪的Python。使用負指數在Python中訪問整個字符串
如果否定索引應該正確工作,那麼對於字符串m ='string',我執行了以下步驟。
>>> m='string'
>>> m[:-1]
'strin'
>>> m[:0]
''
>>> m[-1]
'g'
>>> m[0:]
'string'
>>> m[:-1]
'strin'
>>> m[:0]
''
>>>
我想知道如何使用負索引訪問整個字符串?
>>> m='string'
>>> m[-len(m):]
'string'
就像正指數從一個字符串的開頭向前計數一樣,負指數從最後開始計數。因此,我們必須計算回len(m)
以回到m
的開始。
'n = m [-len(m):]'然後做:'n是m'。 – cdarke
我猜你實際上並不是指任何人所建議的答案。你想知道究竟是爲什麼m[:-N]
返回所有字符米除了最後ñ,除非N是零,因爲-0等於0,m[:0]
應該,當然,返回一個空字符串。
不幸的是,這是一種語言不可逾越的怪癖。
作爲警務人員,我會提供:m[:None]
或m[:(None if N==0 else -N)]
。
你不能。除非'm [-0:]'或'm [-len(m):]'重要。 –
但是爲什麼?這不是什麼負面指數。 – DeepSpace
'm [:: - 1]'總是一個有趣的演示。問一個問題,「爲什麼列表有一個'reverse()'方法,但是一個字符串沒有?列表上的這個切片和'reverse()'有什麼區別? – cdarke