在python中计算整个字符串中特定长度的所有子字符串

2024-10-03 17:19:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个字符串:“stackoverflow”。 输入应该是一个整数,例如a=4。 我的代码应该做的是,它应该计算以4的重叠间隔出现的子字符串的长度,即(考虑字符串“stackoverflow”)-

  • 弦乐一:斯塔克
  • 第二串:大头钉
  • 弦乐三:阿克
  • 字符串四:ckov

一直到绳子的尽头。 然后,我需要找到出现次数最多的字符串。 到目前为止,我所做的是-

def a_length():
    string=input('Enter string : ')
    substr=list('')
    a=input('Enter length of a : ')
    for i in range(len(string)):
        substr += string[i:i+a]
        print(substr)

我在这里试图得到一个存在的子串的列表,但是它给出了一个我不理解的错误-

AttributeError: 'str' object has no attribute 'slice'

但这肯定行不通。任何帮助都将不胜感激。 谢谢您!在


Tags: 字符串代码inputstring间隔def整数stackoverflow
2条回答
string=input('Enter string : ')
substr=list('')
a=int(input('Enter length of a : '))
for i in range(len(string)):
    substr.append(string[i:i+a])
print(substr)

注意,这样也会生成字符串“low”、“ow”和“w”

如果要在“flow”处停止,请在for循环中替换这一行

for i in range(len(string)-a+1):

另外,对于列表理解:substr = [string[i:i+a] for i in range(len(string)-a+1)]

我想你在找这样的东西

s = input('Enter string')
a = int(input('Enter the interval'))
words_count = dict()
len1 = len(s)
i = 0
while i + a < len1:
  new_word = s[i:i+a]
  words_count[new_word] = words_count.get(new_word, 0) + 1
  i = i + 1


for word in words_count:
  print(word)
  print(words_count[word])  

你可以在这里运行我的代码-https://repl.it/HdrX/1

希望你能帮上忙!在

相关问题 更多 >