1.生成1000个随机字符的字符串,然后统计每个字符出现的次数
import randomimport stringx=string.ascii_letters+string.digits+string.punctuationy=[random.choice(x) for i in range(1000)]z=''.join(y)d=dict()for ch in z:d[ch]=d.get(ch,0)+1
2.生成不重复随机数效率比较
import randomimport timedef RandomNumbers(number,start,end):data=[]n=0while True:element=random.randint(start,end)if element not in data:data.append(element)n+=1if n==number-1:breakreturn datadef RandomNumbers1(number,start,end):data=[]while True:element=random.randint(start,end)if element not in data:data.append(element)if len(data)==number:breakreturn datadef RandomNumbers2(number,start,end):data=set()while True:data.add(random.randint(start,end))if len(data)==number:breakreturn datastart=time.time()for i in range(10000):RandomNumbers(50,1,100)print('time used:',time.time()-start)
3自定义二叉树结构
class BinaryTree:def __init__(self,value):self.__left=Noneself.__right=Noneself.__data=valuedef insertLeftChild(self,value): #创建左子树if self.__left:print('left child tree already exists')else:self.__left=BinaryTree(value)return self.__leftdef insertRightChild(self,value): #创建右子树if self.__right:print('right child tree already exists')else:self.__right=BinaryTree(value)return self.__rightdef show(self):print(self.__data)def preOrder(self): #前序遍历print(self.__data) #输出根节点的值if self.__left:self.__left.perOrder() #遍历左子树if self.__right:self.__right.perOrder() #遍历右子树def posOrder(self): #后序遍历if self.__left:self.__left.posOrder() #遍历左子树if self.__right:self.__right.posOrder() #遍历右子树print(self.__data)def inOrder(self): #中序遍历if self.__left:self.__left.inOrder() #遍历左子树print(self.__data)if self.__right:self.__right.inOrder() #遍历右子树if __name__=='__main__':print('please use me as a module')
4.自定义有向图结构
def searchPath(graph,start,end):results=[]__generatePath(grapg,[start],end,results)results.sort(key=lambda x:len(x))return resultsdef __generatePath(grapg,path,end,results):current=path[-1]if curent==end:results.append(path)else:for n in graph[current]:if n not in path:__generatePath(grapg,path+[n],end,results)def showPath(results):print('the path from ',results[0][0],'to',results[0][-1],'is:')for path in results:print(path)if __name__=='__main__':graph={'A':['B','C','D'],'B':['E'],'C':['D','F'],'D':['B','E','G'],'E':['D'],'F':['D','G'],'G':['E']}rl=searchPath(graph,'A','D')showPath(rl)
文章转载自糟老头修炼记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




