• python 字符串函数find功能拓展——查找母串内所有子串的位置


    前言  

      我们知道,字符串内置了很多功能的处理函数,其中,find、index函数都可以接受一个参数意义是作为目标子串,而返回母串中从左到右遍历时子串第一次出现的索引值(每一次调用都是从头开始,没有记忆),如果查询不到返回-1。

      如下面的例子:

      如果,子串不在母串中出现,则find函数返回-1,而index方法返回ValueError错误,这也是两者的区别,接上例:


     深入

      rindex rfind函数:功能类似,把母串从右向左遍历,找到子串第一次出现的位置,也没有记忆性。


    后续

     编写了一个函数,实现find函数类似的功能,但是这次要把所有的子串位置以列表形式返回,这是函数的功能。

     1 # coding=utf-8 
     2 def find_all(source,dest):
     3     length1,length2 = len(source),len(dest)
     4     dest_list = []
     5     temp_list = []
     6     if length1 < length2:
     7         return -1
     8     i = 0
     9     while i <= length1-length2:
    10         if source[i] == dest[0]:
    11             dest_list.append(i)
    12         i += 1
    13     if dest_list == []:
    14         return -1
    15     for x in dest_list:
    16         print("Now x is:%d. Slice string is :%s"% (x,repr(source[x:x+length2])),end=" ")
    17         if source[x:x+length2] != dest:
    18             print(" dest != slice")
    19             temp_list.append(x)
    20         else:
    21             print(" dest == slice")
    22     for x in temp_list:
    23         dest_list.remove(x)
    24     return dest_list
    25 
    26 s1="He!wworld!www.baidu.cowws.cowwppww"
    27 s2="ww"
    28 index_list = find_all(s1,s2)
    29 if index_list != -1:
    30     print("Now dest_list is:{}".format(index_list))
    31 else:
    32     print("Error finding!")

  • 相关阅读:
    2013.11.18 流水
    return to blog!
    IOS实现毛玻璃效果的三种方式
    UI常用控件总结(三)
    UI常用控件总结(二)
    UI常用控件总结(一)
    UIView 常见属性
    OC语言BLOCK和协议
    OC语言类的深入和分类
    OC语言构造方法
  • 原文地址:https://www.cnblogs.com/Higgerw/p/10632285.html
Copyright © 2020-2023  润新知