【发布时间】:2022-01-03 15:46:34
【问题描述】:
我正在尝试快速创建字符串的每个可能版本的列表。我并不是特别指子词 - 例如来自字符串 "ABC",我想得到:
['C', 'B', 'BC', 'A', 'AB', 'ABC']
(没有 "AC" 这是一个子词)
“123”也是如此:
我想得到 ['3', '2', '23', '1', '12', '123'] 而不是 ['3', '2', '23', '1', '13', '12', '123']
【问题讨论】:
-
更清楚地定义
subwords的含义,而不是仅仅举例。人们。可以根据他们的理解解释不同的定义。 -
所以你只是不想
element[0]+element[-1]出现在最终列表中,还是什么?根据您自己的研究,到目前为止您尝试过什么?你的尝试出了什么问题?请edit 包含minimal reproducible example 和code -
itertools 将是一个很好的起点
-
list(set(str[i:j] for i in range(0, len(str)) for j in range(i+1, len(str)+1))) -
最常用的术语是 substring 和 subsequence,其中 substring 是您想要的,即子串 = 连续的子序列。另见:Difference : subsequences and substrings?
标签: python algorithm recursion substring slice