如何在python3中按固定间隔拆分字符串

2024-06-01 08:02:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要以一个固定的间隔拆分一个字符串,并返回一个具有相同字符(一个空格和一个字母)的字符串,每个间隔都有新行,这样它就可以表示某种类型的行/列矩形字符串。我需要返回如下内容(示例):

>>> s = 'sliding puzzles'
>>> puzzle(s, 3, 5)
'slidi
ng pu
zzles'

有人吗?在


Tags: 字符串示例类型内容间隔字母ng字符
3条回答

像这样的东西

def puzzle(s,a,b):
    if a*b != len(s):
       print "Not possible"
       return
    start =0
    end = b+1
    output =""
    for i in range(0,a):
        output= output+s[start: end]+"\n"
        start = end+1
        end = end+b
    print output

我建议使用join来添加换行符,并使用列表理解来进行拆分:

def make_slice(my_str, slice_length, slice_start):
    return mystr[slice_length * slice_start:slice_length * (slice_start + 1)]

def puzzle(my_string, substring_length):
    return '\n'.join([make_slice(my_string, substring_length, substring_index)
                      for substring_index 
                      in range((len(my_string) // substring_length) + 1)])

这个变量不需要指定拼图的高度,只需要指定子字符串的长度。拼图的最后一行可能需要填充空格以达到与其他行相同的长度。在

明白了!感谢Bhavish Agarwal。在

def puzzle(s, r, c):
assert r*c == len(s), 'not possible'
start = 0
end = c
output =""
for _ in range(0, r - 1):
    output= output+s[start: end]+"\n"
    start = end
    end = end + c
output= output+s[start: end]
return output

这是多么容易。谢谢你的迅速反应。:)

相关问题 更多 >