我需要以规则的间隔分割一个字符串并返回一个字符串,该字符串具有相同的字符(一个空格和字母),每个间隔都有换行符,因此它代表某种行/列矩形字符串。我需要返回如下内容(例子):
>>> s = 'sliding puzzles'
>>> puzzle(s, 3, 5)
'slidi
ng pu
zzles'
任何?
答案 0 :(得分: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
答案 1 :(得分:0)
知道了!感谢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
这就是多么容易。谢谢你迅速的回应。 :)
答案 2 :(得分:0)
我建议使用join来获取你的换行符,并使用list list来进行拆分:
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)])
此变体不需要指定拼图的高度,只需指定子串的长度。拼图的最后一行可能需要用空格填充,以达到与其他线相同的长度。