Python字符串切片示例集

时间:2017-06-15 03:57:59

标签: python string algorithm python-3.x slice

我已经在这个问题上工作了好几个小时了,我似乎无法得到它。我的逻辑是这样的

目的是根据问题所要求的预期输出来确定单词“bob”出现的次数= 2。

我只是不知道如何到达那里。我得到了:

s = 'azcbobobegghakl'
bob = 0
for i in range(len(s)):
    print(s[i: i+3])
print("Number of times bob occurs is: ", bob)

如果有人回答这个问题,请向我解释你是如何得到答案的。提前致谢

3 个答案:

答案 0 :(得分:0)

请检查代码。

s = 'azcbobobegghakl'
bob = 0
for i in range(len(s)):
    print(s[i: i+3])
    if s[i: i+3] == "bob":
        bob += 1
print("Number of times bob occurs is: ", bob)

输出是,

azc
zcb
cbo
bob
obo
bob
obe
beg
egg
ggh
gha
hak
akl
kl
l
Number of times bob occurs is:  2

答案 1 :(得分:0)

以下代码段使用正则表达式库re来查找非重叠的子字符串,并返回作为列表找到的所有实例。列表的len()是出现次数。

import re
number_of_bob = len(re.findall("bob", "azcbobobegghakl"))

此方法不适用于重叠模式。要在一行中查找重叠子串的数量:

number_of_bob = sum(1 for i in range(len(s)-2) if s[i:i+3] == 'bob')

答案 2 :(得分:0)

你的回答非常简单。你已经解决了一半的问题。你三次迭代你的字符串。您需要知道的是测试这些子串中的任何一个是否等于字符串"bob"。如果是,请将bob计数器增加1

>>> s = 'azcbobobegghakl'
>>> bob = 0
>>> 
>>> for i in range(len(s)):
    substr = s[i: i + 3]
    # is the current three letter substring equal to "bob"?
    if substr == 'bob':
        # if so, increment the counter by one.
        bob += 1


>>> bob
2
>>> 
相关问题