Расщепление строки справа с интервалами в питоне - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь разбить строку справа. Ниже приведен код.

string = "abcde" 
n = len(string)
slices = [string[i-3:i] for i in range(n,0,-3)]
print (slices)

Я получаю вывод как ['cde', '']. Я пытаюсь получить ['cde', 'ab']

Но когда я делю его слева, он дает правильный вывод, т. Е.,

string = "abcde" 
slices = [string[i:i+3] for i in range(0,n,3)]
print (slices)

output: ['abc', 'de']

Кто-нибудь может указать, где я иду не так?

1 Ответ

0 голосов
/ 30 апреля 2018

Вы рядом. Вам необходимо указать первый аргумент индексации в 0:

x = "abcde" 
n = len(x)
slices = [x[max(0,i-3):i] for i in range(n,0,-3)]

['cde', 'ab']

Причина, по которой ваш код не работает, заключается в том, что при положительных показателях падение с конца означает, что вы идете как можно дальше.

В то время как отрицательные индексы означают начиная с конца , а не переходя к началу и не далее.

...