如何从变量中提取单词?

时间:2017-01-11 15:30:13

标签: python edx

我正在从edX.org那里拿MIT 6.00.1x而我遇到了问题集1的问题2.我在从这个变量中获取bob时遇到了麻烦

<TextView
    android:text="Suggest improvements or changes, or report bugs."
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="0dp"
    android:id="@+id/textView5"
    android:textColor="@color/Black"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp" />

我有这段代码

s = 'azcbobobegghakl'

该代码适用于此变量,但是当您添加另一个b和o时,如下所示:

s = 'azcbobobegghakl'
bobTimes = 0

for bobWord in s:
  if 'b' and 'o' and 'b' in bobWord:
    bobTimes += 1

print(bobTimes)

它为s = 'azcbobobegghaklbobddbtto' 变量添加了一个。我不知道如何从这个变量中提取“bob”这个词。

2 个答案:

答案 0 :(得分:0)

使用python的列表切片获取字符串的后3个字符。

s = 'azcbobobegghakl' #prints 2
s = 'azcbobobegghaklbobddbtto' #prints 3
bobTimes = 0

for i in range(len(s)):
  if s[i:i+3] == 'bob':
    bobTimes += 1

print(bobTimes)

答案 1 :(得分:0)

您能否澄清提取要求?具体做法是:

bobob两个bobs,还是只有一个?是bobobob三个?或者它们都必须分开,即bobasdfbobwwwwbob

s.count("bob")将计算出非重叠字母出现的“bob”实例数。即bob为1,bobbob为2,bobob只有一个,因为中间b仅计入第一个,仅留下ob,但bobobob最好阅读bob o bob

你可以一次迭代一个角色,并检查那个角色和下一个3是否等于“bob”

for k,v in enumerate(s):
   if s[k:k+3]=="bob": bobcount+=1

此方法将bobob计为2,将bobobob计为3。 或者你可以使用正则表达式,但这不是我的强项,我会留给其他人稍后解释/更新一些信息。