提前致谢。 我有一个字符串:
A = 'asdfghjklmn'
如何获得最大长度为3的倍数的子字符串?
答案 0 :(得分:4)
您可以使用slice notation和整数运算。
>>> a = 'asdfghjklmn'
>>> a[:len(a)//3*3]
'asdfghjkl'
>>> len(a)
11
>>> len(a[:len(a)//3*3])
9
通常,n//k*k
将产生小于或等于 n 的 k 的最大倍数。
答案 1 :(得分:1)
看起来你正在寻找这样的东西:
>>> A = 'asdfghjklmn'
>>> mult, _ = divmod(len(A), 3)
>>> A[:mult*3]
'asdfghjkl'
此处生成的字符串的长度是三的倍数,它将是具有此类长度的A
的最长子字符串。
答案 2 :(得分:1)
又一个例子:
>>> A = '12345678'
>>> A[:len(A) - len(A)%3]
'123456'
>>>
答案 3 :(得分:0)
这是你想要的吗?
A = 'asdfghjklmn'
A[0:(len(A)/3)*3]
'asdfghjkl'
答案 4 :(得分:0)
前言它永远不会像实际使用 math 那样找到最长的3个子串的倍数,这是使用正则表达式的方法:< / p>
>>> re.findall("^(?:.{3})*", "asdfghjklmn")[0]
'asdfghjkl'
更改3
量词将允许您获得不同的倍数。