如何在 python 中的示例字符串中找到长度为 k 的所有重叠子字符串
how to find all overlapping substrings of length k in a sample string in python
str1 = "ABCDEF"
我想找到上面字符串中所有长度为3的子串的列表,包括重叠
例如:
list1 = ['ABC','BCD','CDE','DEF']
我尝试了以下方法,但它错过了重叠部分:
n = 3
lst = [str1[i:i+n] for i in range(0, len(str1), n)]
x = "ABCDEF"
print ([x[i:i+3] for i in range(len(x)-2)])
输出:
['ABC', 'BCD', 'CDE', 'DEF']
更一般地说:
x = "ABCDEF"
n = 2
print ([x[i:i+n] for i in range(len(x)-n+1)])
输出:
['AB', 'BC', 'CD', 'DE', 'EF']
更一般地说:
x = "ABCDEF"
for n in range(len(x)+1):
print ([x[i:i+n] for i in range(len(x)-n+1)])
输出:
['', '', '', '', '', '', '']
['A', 'B', 'C', 'D', 'E', 'F']
['AB', 'BC', 'CD', 'DE', 'EF']
['ABC', 'BCD', 'CDE', 'DEF']
['ABCD', 'BCDE', 'CDEF']
['ABCDE', 'BCDEF']
['ABCDEF']
str1 = "ABCDEF"
我想找到上面字符串中所有长度为3的子串的列表,包括重叠 例如:
list1 = ['ABC','BCD','CDE','DEF']
我尝试了以下方法,但它错过了重叠部分:
n = 3
lst = [str1[i:i+n] for i in range(0, len(str1), n)]
x = "ABCDEF"
print ([x[i:i+3] for i in range(len(x)-2)])
输出:
['ABC', 'BCD', 'CDE', 'DEF']
更一般地说:
x = "ABCDEF"
n = 2
print ([x[i:i+n] for i in range(len(x)-n+1)])
输出:
['AB', 'BC', 'CD', 'DE', 'EF']
更一般地说:
x = "ABCDEF"
for n in range(len(x)+1):
print ([x[i:i+n] for i in range(len(x)-n+1)])
输出:
['', '', '', '', '', '', '']
['A', 'B', 'C', 'D', 'E', 'F']
['AB', 'BC', 'CD', 'DE', 'EF']
['ABC', 'BCD', 'CDE', 'DEF']
['ABCD', 'BCDE', 'CDEF']
['ABCDE', 'BCDEF']
['ABCDEF']