zoukankan      html  css  js  c++  java
  • Python split()分割函数Python实现源码

    楼主月初去腾讯时面试官临时给的一道编程题,先说明下,本猿的本职工作是测试拉,所以代码有不合理欢迎大家批评和指导!

       先卖个关子吧,上下楼主当时自己临场发挥的代码(当时没觉得,出来后都想给自己一巴掌):

    ##############################################

    
    
     1 def split_test(stringstr,charstr):
     2     templist = []
     3     for i in range(len(stringstr)):
     4         if stringstr[i]==charstr:
     5             print 'this is charstr!'
     6         else:
     7             templist.append(stringstr[i])
     8     return templist
     9 
    10 if __name__=="__main__":
    11     print split_test("abcdefgavavb",'a')
    
    

    ##################################
    预期结果:
    C:Python27python.exe C:/Users/Administrator/PycharmProjects/ChenDejieWorkSpace/.idea/Split_test.py
    this is charstr!
    this is charstr!
    this is charstr!
    ['b', 'c', 'd', 'e', 'f', 'g', 'v', 'v', 'b']
    楼猪当时确时没想很多,以前用split()用得非常多,但从来没研究过,当时写出来后还津津乐道,以为自己多牛逼(好吧,我是二逼,大家勿喷)
    ##############################################################
    今天下午遇到一些字符上的事,想起这道面试题,干脆去研究了下,不说了上代码:
     1 #-*-coding:utf-8-*-
     2 def split_new(stringstr, charstr):
     3     """
     4     :param stringstr: 要分割的串
     5     :param charstr: 按该串分割
     6     :return: 返回分割后的list
     7     """
     8     #stringstr = stringstr
     9     tempstr = []
    10     lengstring = len(stringstr)#计算串的长度
    11     lengchar = len(charstr)#计算分割符的长度
    12     for i in range(lengstring):
    13         index = stringstr.find(charstr)#找到第一个出现charstr的坐标,如果没有找到,find返回-1
    14         if index == -1:
    15             tempstr.append(stringstr)
    16             return tempstr
    17         else:
    18             tempstr.append(stringstr[:index])#取第一次出现charstr(不包含charstr)的前面部分
    19             stringstr = stringstr[index+lengchar:]#把第一次出现charstr(不包含charstr)的 后面部分 重新赋值给stringstr
    20 
    21 if __name__=="__main__":
    22     print split_new("ABCDEFGAA@@ABCDEFGA@@ABCDEFG", "A")
    ##################################
    预期结果:
    C:Python27python.exe C:/Users/Administrator/PycharmProjects/ChenDejieWorkSpace/split_New.py
    ['', 'BCDEFG', '', '@@', 'BCDEFG', '@@', 'BCDEFG']
    优点是分割符可以使用字符或者串都行

    尾声:代码无法拷回,临时回忆贴图,有问题先感谢大家指导并留言!
  • 相关阅读:
    visual studio 2013运行时卡顿 CPU占用超50%的解决方法
    altium designer中Net Label 使用说明
    机器学习中的目标函数、损失函数、代价函数
    我的Android天气app
    序列交换
    挑战多重部分和问题
    kmp算法模式串匹配
    poj3259
    poj3255
    Redis工具类 单机+集群
  • 原文地址:https://www.cnblogs.com/cdj811/p/6095521.html
Copyright © 2011-2022 走看看