擅长:python、mysql、java
<p>试试这个。它不是剪切列表,而是集中精力寻找最短的模式,然后通过重复这个模式适当的次数来创建一个新的列表。在</p>
<pre><code>def splitstring(s):
# searching the number of characters to split on
proposed_pattern = s[0]
for i, c in enumerate(s[1:], 1):
if proposed_pattern == s[i:(i+len(proposed_pattern))]:
# found it
break
else:
proposed_pattern += c
else:
print 'found no pattern'
exit(1)
# generating the list
n = len(proposed_pattern)
return [proposed_pattern]*(len(s)//n)
if __name__ == '__main__':
L = 'hellohellohellohello'
print splitstring(L) # prints ['hello', 'hello', 'hello', 'hello']
</code></pre>