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

yipeiwu_com6年前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设计】。

相关文章

详解使用python绘制混淆矩阵(confusion_matrix)

详解使用python绘制混淆矩阵(confusion_matrix)

Summary 涉及到分类问题,我们经常需要通过可视化混淆矩阵来分析实验结果进而得出调参思路,本文介绍如何利用python绘制混淆矩阵(confusion_matrix),本文只提供代...

python互斥锁、加锁、同步机制、异步通信知识总结

某个线程要共享数据时,先将其锁定,此时资源的状态为“锁定”,其他线程不能更改;直到该线程释放资源,将资源的状态变成“非锁定”,其他的线程才能再次锁定该资源。互斥锁保证了每次只有一个线程进...

python中日志logging模块的性能及多进程详解

python中日志logging模块的性能及多进程详解

前言 Java 中最通用的日志模块莫过于 Log4j 了,在 python 中,也自带了 logging 模块,该模块的用法其实和 Log4j 类似。日志是记录操作的一种好方式。但是日...

TensorFlow2.0:张量的合并与分割实例

** 一 tf.concat( ) 函数–合并 ** In [2]: a = tf.ones([4,35,8]) In [3]:...

Python应用03 使用PyQT制作视频播放器实例

Python应用03 使用PyQT制作视频播放器实例

最近研究了Python的两个GUI包,Tkinter和PyQT。这两个GUI包的底层分别是Tcl/Tk和QT。相比之下,我觉得PyQT使用起来更加方便,功能也相对丰富。这一篇用PyQT实...