首页 > 解决方案 > 获取在 Python 中将字符串拆分为 3 个子字符串的所有组合

问题描述

这是字符串:

st = 'abcdfdedf'

我想将字符串拆分为 3 个子字符串并获取所有组合:

result = [['abc','dfd','edf'],['abcd','f','dedf'], ...]

注意:这里的顺序并不重要。

标签: pythonarrayssplit

解决方案


除非我误解了这个问题,否则跟踪两个拆分位置是一件简单的事情。例如:

from pprint import pprint

st = 'abcdfdedf'

n = len(st)
splits = []
for i in range(1, n-1):
    for j in range(i+1, n):
        splits.append([st[0:i], st[i:j], st[j:]])
pprint(splits)

这导致

[['a', 'b', 'cdfdedf'],
 ['a', 'bc', 'dfdedf'],
 ['a', 'bcd', 'fdedf'],
 ['a', 'bcdf', 'dedf'],
 ['a', 'bcdfd', 'edf'],
 ['a', 'bcdfde', 'df'],
 ['a', 'bcdfded', 'f'],
 ['ab', 'c', 'dfdedf'],
 ['ab', 'cd', 'fdedf'],
 ['ab', 'cdf', 'dedf'],
 ['ab', 'cdfd', 'edf'],
 ['ab', 'cdfde', 'df'],
 ['ab', 'cdfded', 'f'],
 ['abc', 'd', 'fdedf'],
 ['abc', 'df', 'dedf'],
 ['abc', 'dfd', 'edf'],
 ['abc', 'dfde', 'df'],
 ['abc', 'dfded', 'f'],
 ['abcd', 'f', 'dedf'],
 ['abcd', 'fd', 'edf'],
 ['abcd', 'fde', 'df'],
 ['abcd', 'fded', 'f'],
 ['abcdf', 'd', 'edf'],
 ['abcdf', 'de', 'df'],
 ['abcdf', 'ded', 'f'],
 ['abcdfd', 'e', 'df'],
 ['abcdfd', 'ed', 'f'],
 ['abcdfde', 'd', 'f']]

推荐阅读