对于我正在执行的赋值,我必须采用一个字符串(例如'BeeMovie'),并根据函数中作为参数给出的整数将其分为两段。按照相同的示例,如果我选择2的整数,则意味着“ BeeMovie”将被拆分为“ BeeM-ovie”。我尝试使用下面的代码,但是当我需要将字符串分成两段(或整数给出很多段)时,它将每个字符串分成两个字符。
def remix(str, int):
str1 = str
x = int
parts = 0
i = 0
parts = [str[i:i+x] for i in range(0, len(str1), x)]
print(parts)
更新: 我可以使用下面的代码对短语进行接近的分割,但是如果该短语的字符数为奇数,它将创建另一个段,而不是将多余的字符添加到上一个段中。例如:'BeeMovies'应该成为'BeeM-ovies'而不是'Beem-ovie-s'。对如何更正此有任何想法吗?
def remix(str1, x):
stride = len(str1) / x
stride1 = int(stride)
parts = [str1[i:i+stride1] for i in range(0, len(str1), stride1)]
print(parts)
答案 0 :(得分:1)
将字符串的长度除以x
,以获取每个切片的长度。如果ceil()
不能平均分配,请使用四舍五入,这样就不会得到多余的切片。
def remix(str1, x):
stride = ceil(len(str1) / x)
parts = [str1[i:i+stride] for i in range(0, len(str1), stride)]
print(parts)
在列表理解覆盖它们之前,也无需分配变量i
和parts
。