繁体   English   中英

字符串 output 所有 substring 包括不相邻的

[英]string output all substring including non-adjacent

例如字符串 'abc' 输出所有子串,它们是'a', 'b', 'c', 'ab', 'ac', 'bc','abc'重要的是, 'ac'是不相邻的substring。

lines = input()
res = [lines[i: j] for i in range(len(lines)) for j in range(i + 1, len(lines) + 1)]

输出所有相邻的子串。 如何修改此 function 以包含不相邻的 substring? 谢谢

您可以使用itertools中的combinations

# s = 'abc'
>>> [''.join(j) for i in range(1, len(s)+1) for j in combinations(s, i)]

['a', 'b', 'c', 'ab', 'ac', 'bc', 'abc']

您可以使用itertools.combinations

from itertools import combinations

s = 'abc'
for i in range(1, len(s)):
    for item in combinations('abc', i):
        print(''.join(item))

Output:

a
b
c
ab
ac
bc
abc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM