关于python之字典的嵌套,递归调用方法
一 字典的嵌套
在机器学习实战决策树部分,生成决策树时用到了字典的嵌套。
>>>s1={'no surface':{}} >>>s1['no surfacce'][0]='no' >>>s1 {'no surface':{0:'no'}} >>>s2={'flipper':{}} >>>s2['flipper'][0]='no' >>>s2['flipper'][1]='yes' >>>s1['no surface'][1]==s2 >>>s1 {'no surface':{0:'no',1:{'flipper':{0:'no,1:'yes''}}}}
在上面构造嵌套字典的过程中,可以通过key来得到相应的value,而相应的value又可以是由字典构成的,再次利用key作为索引层级得到value。
二 递归调用
递归函数算阶乘
def fact(): if n==1: return 1 return n*fact(n-1)
如果我们计算fact(5),可以根据函数定义看到计算过程如下:
===> fact(5) ===> 5 * fact(4) ===> 5 * (4 * fact(3)) ===> 5 * (4 * (3 * fact(2))) ===> 5 * (4 * (3 * (2 * fact(1)))) ===> 5 * (4 * (3 * (2 * 1))) ===> 5 * (4 * (3 * 2)) ===> 5 * (4 * 6) ===> 5 * 24 ===> 120
以上这篇关于python之字典的嵌套,递归调用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
用Python编写生成树状结构的文件目录的脚本的教程
有时候需要罗列下U盘等移动设备或一个程序下面的目录结构的需求.基于这样的需求个人整理了一个使用Python的小工具,期望对有这方面需求的朋友有所帮助.以下为具体代码: 如果你所有要求的文件目录不需要完整的文件路径的话,直接更换下面的注释代码即可~ # -*- coding:utf-8 -*- import os def list_files(startPath): fileSave = open('list.txt','w') for root, dirs, files in os.walk(s
-
python中多层嵌套列表的拆分方法
场景:有一个多层嵌套的列表如:[[23],[3,3],[22,22],1,123,[[123,a],2]] 拆分成: def splitlist(list): ''' 现有一个列表,里面元素包括 数字,字母,列表,字典等元素,现在要将字典去掉,并将列表 分解成字母,或数字元素如:[[1,2,3],2,3,[1,3,[12,22]],'a',12] 经函数处理后[1, 2, 3, 2, 3, 1, 3, 12, 22, 'a', 12] ''' alist = [] a = 0 for subli
-
利用Django模版生成树状结构实例代码
前言 我们经常会有这样的需求,比如评论功能,每个评论都有可能会有自己的子评论,如果在界面只展示成一列的话非常不美观,也不能体现出他们的层级关系.那么我们今天就来看看如何使用Django的模版来生成树状结构,以本站为例,效果如下图所示: 那么我们要怎么实现呢?首先先看看评论实体的定义,如下所示: class Comment(models.Model): body = models.TextField('正文', max_length=300) author = models.ForeignKey(
-
对python 树状嵌套结构的实现思路详解
原始数据 原始数据大致是这样子的: 每条数据中的四个数据分别是 当前节点名称,节点描述(指代一些需要的节点属性),源节点(即最顶层节点),父节点(当前节点上一层节点). datas = [ ["root", "根节点", "root", None], ["node1", "一级节点1", "root", "root"], ["node2", &qu
-
python实现嵌套列表平铺的两种方法
方法一:使用列表推导式 >>> vec = [[1,2,3],[4,5,6],[7,8,9]] >>> get = [num for elem in vec for num in elem] >>> get [1, 2, 3, 4, 5, 6, 7, 8, 9] 方法相当于 >>> vec = [[1,2,3],[4,5,6],[7,8,9]] >>> result = [] >>> for ele
-
关于python之字典的嵌套,递归调用方法
一 字典的嵌套 在机器学习实战决策树部分,生成决策树时用到了字典的嵌套. >>>s1={'no surface':{}} >>>s1['no surfacce'][0]='no' >>>s1 {'no surface':{0:'no'}} >>>s2={'flipper':{}} >>>s2['flipper'][0]='no' >>>s2['flipper'][1]='yes' >>&
-
python二分查找算法的递归实现方法
本文实例讲述了python二分查找算法的递归实现方法.分享给大家供大家参考,具体如下: 这里先提供一段二分查找的代码: def binarySearch(alist, item): first = 0 last = len(alist)-1 found = False while first<=last and not found: midpoint = (first + last)//2 if alist[midpoint] == item: found = True else: if ite
-
浅谈Python中函数的定义及其调用方法
一.函数的定义及其应用 所谓函数,就是把具有独立功能的代码块组织成为一个小模块,在需要的时候调用函数的使用包含两个步骤 1.定义函数–封装独立的功能 2.调用函数–享受封装的成果 函数的作用:在开发时,使用函数可以提高编写的效率以及代码的重用'' 函数: 函数是带名字的代码块,用于完成具体的工作 需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用该任务的函数,让python运行其中的代码,你将发现,通过使用函数,程序编写,阅读,测试和修复都将更容易 1.定义函数 def
-
python:接口间数据传递与调用方法
如下所示: import requests import unittest import json from pubulic_way.get_token import getSession class testlogin(unittest.TestCase): def test_getIdentify(self): '''调用test_listCollectInfoByCreditId(self)响应数据中的taxid参数''' result = self.get_listCollectInfo
-
Python之字典添加元素的几种方法
本文使用的代码 book_dict = {"price": 500, "bookName": "Python设计", "weight": "250g"} 第一种方式:使用[] book_dict["owner"] = "tyson" 说明:中括号指定key,赋值一个value,key不存在,则是添加元素(如果key已存在,则是修改key对应的value) 第二种方式:
-
python中字典增加和删除使用方法
增加操作: 变量名[key] = value # 通过key添加value值,如果key存在则覆盖 user_info = {"name":"冯提莫","like":"喵喵喵"} user_info["height"] = 1.51 # 添加一个元素 print(user_info) #{'name': '冯提莫', 'like': '喵喵喵', 'height': 1.51 user_info[&qu
-
详解Python实现字典合并的四种方法
目录 1.用for循环把一个字典合并到另一个字典 2.用dict(b, **a)方法构造一个新字典 3.用b.update(a)的方法,更新字典 4.把字典转换成列表合并后,再转换成字典 (1)利用a.items().b.items()把a.b两个字典转换成元组键值对列表 (2)合并列表并且把合并后的列表转换成字典 5.实例,netmiko使用json格式的数据进行自动化操作 (1)json格式的处理 (2)json格式的设备信息列表 (3)netmiko读取json类型信息示例 1.用for循
-
Python使用字典的嵌套功能详解
当需要存储很多同类型的不通过数据时可能需要使用到嵌套,先用一个例子说明嵌套的使用 1.在列表中存储字典 #假设年级里有一群国际化的学生,有黄皮肤的中国人.有白皮肤的美国人也有黑皮肤的非洲人,只记录部分特征 student_1={'nationality':'China','colour':'yellow','age':'15'} student_2={'nationality':'America','colour':'white','age':'18'} student_3={'national
-
Python利用字典破解WIFI密码的方法
最近看到网上的一些作品,然后进行一些完善.只是用于学习,不要去干坏事哦.程序来源于网,我只是做了一些优化.当然这种方法破解还是有点慢哦.我用的python 3.6.5 既然要破解wifi,那么连接wifi的模块首先要有的,我们要导入pywifi模块. 有些同学可能没有这个,如果直接通过pip安装的话,可能不能用,听说这个wifi模块被停用了,所以大家如果通过pip安装的不行,那么就下载我提供的. 链接:https://pan.baidu.com/s/1rn-5F1CS5UXOTcLh3QAMhg
-
python 递归调用返回None的问题及解决方法
今天在做python获取邮件时需要递归调用解析函数才可以解析邮件内容,最后想要将解析出的内容返回时发现返回的是None 可以内容却可以打印出来,很费解.后来在网上找到了解决方案,才想明白 在这里记录下. 原文:https://www.jb51.net/article/182765.htm 原始测试代码如下: def print_info(msg, indent=0): if indent == 0: for header in ['From', 'To', 'Subject']: value =
随机推荐
- 用VBS设置静态IP和DNS服务器地址的代码
- 移动端触屏幻灯片图片切换插件idangerous swiper.js
- js循环动态绑定带参数函数遇到的问题及解决方案[转]
- Java中构造、生成XML简明教程
- oracle 数据泵导入导出介绍
- setinterval()与clearInterval()JS函数的调用方法
- C# 实现连连看功能(推荐)
- mysql read_buffer_size 设置多少合适
- 在你的网页中嵌入外部网页的方法
- 用vbs实现自动检查代理是否可用,并自动设置IE代理的脚本
- C++中explict关键字用法
- Linux中搭建FTP服务器的方法
- SQL Server 压缩日志与减少SQL Server 文件大小的方法
- bootstrap的工具提示实例代码
- 实现无刷新联动例子汇总
- 详解Nginx 和 PHP 的两种部署方式的对比
- Android开发笔记之:深入理解多线程AsyncTask
- Android编程实现改变控件背景及形态的方法
- Java微信支付-微信红包
- .net输出重写压缩页面文件的小例子