python嵌套字典读取_关于python之字典的嵌套,递归调用方法

关于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之字典的嵌套,递归调用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2019-01-21

场景:有一个多层嵌套的列表如:[[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

原始数据 原始数据大致是这样子的: 每条数据中的四个数据分别是 当前节点名称,节点描述(指代一些需要的节点属性),源节点(即最顶层节点),父节点(当前节点上一层节点). datas = [ ["root", "根节点", "root", None], ["node1", "一级节点1", "root", "root"], ["node2", &qu

blank.gif

前言 我们经常会有这样的需求,比如评论功能,每个评论都有可能会有自己的子评论,如果在界面只展示成一列的话非常不美观,也不能体现出他们的层级关系.那么我们今天就来看看如何使用Django的模版来生成树状结构,以本站为例,效果如下图所示: 那么我们要怎么实现呢?首先先看看评论实体的定义,如下所示: class Comment(models.Model): body = models.TextField('正文', max_length=300) author = models.ForeignKey(

有时候需要罗列下U盘等移动设备或一个程序下面的目录结构的需求.基于这样的需求个人整理了一个使用Python的小工具,期望对有这方面需求的朋友有所帮助.以下为具体代码: 如果你所有要求的文件目录不需要完整的文件路径的话,直接更换下面的注释代码即可~ # -*- coding:utf-8 -*- import os def list_files(startPath): fileSave = open('list.txt','w') for root, dirs, files in os.walk(s

方法一:使用列表推导式 >>> 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

要求: #出租车计费************************************************************************************** # 要求:循环输入公里数,自动计算所需费用,费用计算公式如下 # 0.公里数小于等于0时输出: #   请输入正确的公里数进行计算,程序结束 # 1.出租车起步价8元,包含2公里 # 2.超过两公里的部分,每公里收取1.2元 # 3.超过12公里的部分,每公里收取1.5元 方法一: while True:

第一种 import base64 from Crypto.Cipher import AES # 密钥(key), 密斯偏移量(iv) CBC模式加密 def AES_Encrypt(key, data): vi = '0102030405060708' pad = lambda s: s + (16 - len(s) % 16) * chr(16 - len(s) % 16) data = pad(data) # 字符串补位 cipher = AES.new(key.encode('utf8

本文实例为大家分享了python读取视频流提取视频帧的具体代码,供大家参考,具体内容如下 方法一:通过imageio库和skimage库 1. 安装环境: pip install imageio pip install skimage 这时候会报错Please install the `scikit-image` package (instead of `skimage`) 所以按照提示操作即可: pip install scikit-image 环境安装成功. 2.通过python安装ffmp

今天来说一下如何判断字典中是否存在某个key,一般有两种通用做法,下面为大家来分别讲解一下: 第一种方法:使用自带函数实现. 在python的字典的属性方法里面有一个has_key()方法,这个方法使用起来非常简单. 例: #生成一个字典 d = {'name':{},'age':{},'sex':{}} #打印返回值 print d.has_key('name') #结果返回True 第二种方法:使用in方法 #生成一个字典 d = {'name':{},'age':{},'sex':{}}

在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. 显示图片 import matplotlib.pyplot as plt # plt 用于显示图片 import matplotlib.image as mpimg # mpimg 用于读取图片 import numpy as np lena = mpimg.imread('lena.png')

方法1: 系统api实现 复制代码 代码如下: Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic);  //bitmap = Bitmap.createBitmap(100, 20, Config.ARGB_8888);  BitmapDrawable drawable = new BitmapDrawable(bitmap);  drawable.setTileModeXY(TileMode.

找到给定二叉树的最小深度 最小深度是从根节点到最近叶子节点的最短路径上的节点数量 注意:叶子节点没有子树 Example: Given binary tree [3,9,20,null,null,15,7], 3    / \   9  20     /  \    15   7 return its minimum depth = 2. 1:算法遍历二叉树每一层,一旦发现某层的某个结点无子树,就返回该层的深度,这个深度就是该二叉树的最小深度 def minDepth(self, root):

关于Python的文件遍历,大概有两种方法,一种是较为便利的os.walk(),还有一种是利用os.listdir()递归遍历. 方法一:利用os.walk os.walk可以自顶向下或者自底向上遍历整个文件树,然后返回一个含有3个元素的tuple,(dirpath, dirnames, filenames),要注意的是,os.walk()会返回一个generater,所以调用的时候一定要放到for循环中. 复制代码 代码如下: import osdef walk_dir(dirname): f

用python读取视频有两种主要方法,大家可依据自己的需求进行使用. 方法一: 使用imageio库,没有安装的可用pip安装或自己下载,安装好后重启终端即可调用. import pylab import imageio #视频的绝对路径 filename = '/path/to/your/video.mp4' #可以选择解码工具 vid = imageio.get_reader(filename, 'ffmpeg') for im in enumerate(vid): #image的类型是ma

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值