我试图从右边分割一个字符串。以下是代码。

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']

谁能指出我哪里出错了?

最佳答案

你很近。您需要将第一个索引参数设为 0:

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

['cde', 'ab']

您的代码不起作用的原因是因为使用正指数,从最后落下意味着尽可能地走得更远。

而负指数意味着从头开始,而不是从头到尾。

关于python - 在python中以间隔从右侧拆分字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50105672/

10-12 07:03