首页 > 代码库 > Split()分割函数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:\Python27\python.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返回-114         if index == -1:15             tempstr.append(stringstr)16             return tempstr17         else:18             tempstr.append(stringstr[:index])#取第一次出现charstr(不包含charstr)的前面部分19             stringstr = stringstr[index+lengchar:]#把第一次出现charstr(不包含charstr)的 后面部分 重新赋值给stringstr20 21 if __name__=="__main__":22     print split_new("ABCDEFGAA@@ABCDEFGA@@ABCDEFG", "A")
##################################
预期结果:
C:\Python27\python.exe C:/Users/Administrator/PycharmProjects/ChenDejieWorkSpace/split_New.py
[‘‘, ‘BCDEFG‘, ‘‘, ‘@@‘, ‘BCDEFG‘, ‘@@‘, ‘BCDEFG‘]
优点是分割符可以使用字符或者串都行

尾声:代码无法拷回,临时回忆贴图,有问题先感谢大家指导并留言!

Split()分割函数Python实现源码