我有一个字符串,我想要一个 str 数组,例如:
"hello world"
["hel", "lo ", "wor", "ld"]
或
["hell", "o wo", "rld"]
我看到 list(message) 可以,但只是为了
["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", ]
有什么想法吗?
请您参考如下方法:
>>> s = 'hello world'
>>> [s[i:i+3] for i in range(len(s)) if not i % 3]
['hel', 'lo ', 'wor', 'ld']
对于更通用的解决方案(即自定义拆分),请尝试此功能:
def split_on_parts(s, *parts):
total = 0
buildstr = []
for p in parts:
buildstr.append(s[total:total+p])
total += p
return buildstr
s = 'hello world'
print split_on_parts(s, 3, 3, 3, 3)
print split_on_parts(s, 4, 3, 4)
产生输出:
['hel', 'lo ', 'wor', 'ld']
['hell', 'o w', 'orld']
或者如果您真的想要单线:
def split_on_parts(s, *parts):
return [s[sum(parts[:p]):sum(parts[:p+1])] for p in range(len(parts))]
