python返回字串的所有子串(小技巧)
阿新 • • 發佈:2021-02-08
1、自定義函式,可以按順序返回子串列表。
def restr(s):
results = []
# x + 1 表示子串的長度
for x in range(len(s)):
# i 表示滑窗長度
for i in range(len(s) - x):
results.append(s[i:i + x + 1])
return results
print(restr("flow"))
結果為:
2、也可以一行解決,等同於上面的自定義函式。
>>> s = 'flow'
>>> [s[i:i + x + 1] for x in range(len(s)) for i in range(len(s) - x)]
['f', 'l', 'o', 'w', 'fl', 'lo', 'ow', 'flo', 'low', 'flow']