Python 如何截断字符串';s长度为较小整数的最大倍数?

Python 如何截断字符串';s长度为较小整数的最大倍数?,python,string,truncate,Python,String,Truncate,我有一个任意长度的字符串path,还有一个小于或等于path长度的整数x。我想将path的长度截断为x的最大倍数,该倍数小于或等于path的原始长度 以下是我能想到的最好的方法,但我觉得Python会有更好的方法来实现这一点: final_length = 0 while final_length + x <= len(path): final_length = final_length + x final_path = path[:final_length] final_长度=

我有一个任意长度的字符串
path
,还有一个小于或等于
path
长度的整数
x
。我想将
path
的长度截断为
x
的最大倍数,该倍数小于或等于
path
的原始长度

以下是我能想到的最好的方法,但我觉得Python会有更好的方法来实现这一点:

final_length = 0
while final_length + x <= len(path):
    final_length = final_length + x
final_path = path[:final_length]
final_长度=0

而final_length+x整数除法将在不使用循环的情况下给出您想要的结果

x = 3
s = 'hello world'

s[:(len(s) // x) * x]
返回

hello wor

长度为9的整数除法将在不使用循环的情况下给出您想要的结果

x = 3
s = 'hello world'

s[:(len(s) // x) * x]
返回

hello wor

长度为9的替代形式可能会(稍微)减少工作量:
s[:-(len(s)%x)或无]
Nice one@ShadowRanger!非常感谢。我知道有一种更优雅的方法可以做到这一点,但我不能完全把我的手指放在上面。另一种可能做(稍微)更少工作的形式:
s[:-(len(s)%x)或无]
Nice one@ShadowRanger!非常感谢。我知道有一种更优雅的方法可以做到这一点,但我不能完全把手指放在上面。