一、把嵌套列表压平为一层列表

def flatten(nested_list):'''这是把嵌套列表压平为简单列表并返回的函数:参数 nested_list:一个嵌套列表'''#先定义一个空列表,用于存储我们提出出来的元素,# 这也是最终要返回的那个列表new_list = []#遍历原始的嵌套列表for element in nested_list:#如果当前元素是一个列表if type(element) is list:#调用flatten函数本身,就把它返回的结果先想象成一个已经整理好的一层列表#然后拼接到我们最终要返回的列表上new_list+=flatten(element)#如果当前元素不是列表,那正是我们要提取出来的元素#把它装进列表,拼接到我们最终要返回的列表上else:new_list+=[element]#返回我们整理好的新列表return new_list

二、返回某个元素在一个嵌套列表中出现的次数

def count(target,nested_list):'''返回嵌套列表中某元素出现的次数的函数:参数 target:我们想查看的目标元素:参数 nested_list:一个嵌套列表'''#初始化计数器number = 0 #遍历给定的嵌套列表for element in nested_list:#如果当前元素是一个列表if type(element) is list:#调用count函数本身,就想先成它已经数好了这个子列表中有多少个目标元素了#把它的返回值(必定是一个整数)加到我们的计数器上number += count(target,element)#如果当前元素不是列表,那就是一个普通的元素else:#把这个普通的元素和我们的目标元素相比较,得出布尔值#这里是一个小窍门,布尔值可以直接当做数字1或者0参与加法运算number += (target == element)#返回技术结果return number

三、返回斐波那契数列中的第n个数

def fib(n):'''返回斐波那契数列中的第n个元素:参数 n:数列中元素的序号,注意,需要从0开始'''#开头的两个元素单独处理if n<=1:return n#斐波那契数列的特点就是一个元素等于它前面两个元素之和t = fib(n-1)+fib(n-2)return t 

PS:上面这个生成斐波那契数的递归函数实在是太——慢——啦——  还不如下面循环的方式快:

def fib(n):'''返回斐波那契数列中的第n个元素:参数 n:数列中元素的序号,注意,需要从0开始'''#这是一个存放斐波那契数列的列表,前两个元素先手动填充了fib_list = [0,1]#当n小于1的时候,就把n当做索引,取出列表中相应的元素即可if n <= 1:return fib_list[n]#n大于1的时候else:#循环n-1次for i in range(n-1):#每次都把数列中的最后两个元素拿出来相加,就得到一个新元素#新元素一定要记得追加到列表的末尾,这样这个数列就会越来越长fib_list.append(fib_list[-1]+fib_list[-2])#而我们要的元素,就是数列中最后(新)的那一个return fib_list[-1] 

如果这篇博文帮到了你,就请给我点个吧(#^.^#)

有疑问也欢迎留言~博主可nice啦,在线秒回ヾ(◍°∇°◍)ノ゙

Python递归实现①把嵌套列表压平为一层列表②返回嵌套列表中某元素出现的个数③返回第n个斐波那契数相关推荐

  1. Python一行代码求解斐波那契数

    1. 斐波那契数 斐波那契数是一系列数字,其中每个数字是前两个数字的总和.斐波那契数列中的第一个和第二个数都是1,后面的数是前两个数的和. 如下所示: 1 1 2 3 5 8 13 21 34 55 ...

  2. Python 递归算 阶乘 法斐波那契数 不死兔问题

    递归算法 阶乘 n!=nn-1n-2*-1 def fac(n):"""求某数的阶乘值:param n:某数:return:阶乘"""# 递 ...

  3. Java递归求斐波那契数求猴子吃桃

    递归求斐波那契数 斐波那契数是指前两位是1,后面的数依次是其前两位的和.即1,1,2,3,5,8-给你一个 n,求其值是多少 public class recursionExercise01{//定义 ...

  4. 蓝桥杯python组--基础训练---求输入的第n个,斐波那契数

    文章目录 题目 思路1: 结果 思路2: 结果 思路3 结果 思路4 结果 思路5 结果 思路6 结果 题目 求输入的第n个,斐波那契数 斐波那契数:斐波那契数列(Fibonacci sequence ...

  5. 斐波那契数与二分法的递归与非递归算法及其复杂度分析

    1. 什么是斐波那契数? 这里我借用百度百科上的解释:斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列.费波那西数列.费波拿契数.费氏 ...

  6. 斐波那契数的两种求法(迭代,递归)

    **斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列.该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F(0) = 0, F(1) = 1 F(N) = F( ...

  7. C和指针之函数之实现阶乘和斐波那契数(递归和非递归)

    1.问题 实现阶乘和斐波那契数(递归和非递归) 2.代码实现 #include <stdio.h>int num = 0; //递归实现斐波那契数 // n <=2, f(n) = ...

  8. C语言用递归求斐波那契数,让你发现递归的缺陷和效率瓶颈

    C语言用递归求斐波那契数,让你发现递归的缺陷和效率瓶颈 分享到: QQ空间 新浪微博 腾讯微博 豆瓣 人人网 递归是一种强有力的技巧,但和其他技巧一样,它也可能被误用. 一般需要递归解决的问题有两个特 ...

  9. 斐波那契数的两种实现方式———1.递归实现,2迭代实现

    对于斐波那契数,若是采用递归的算法,每个递归调用都将触发另外两个递归调用,而这两个中调用任意一个还会触发另外两个的调用.递归调用的时间复杂度O(2^N),空间复杂度为O(N),所以在计算略大的数会花费 ...

最新文章

  1. [论文笔记] A model for correlated failures in N-version programming(IIE Trans, 2004)
  2. 深圳.Net俱乐部2.26活动资源下载之——从SmartClient到ClickOnce
  3. Fragment专辑(一):Fragment简介
  4. python 线程类 threading.Thread.run() 方法
  5. 第三章 使用Servlet处理HTTP响应
  6. PHP执行一个http请求
  7. html编辑器设置为publisher,将PDF转换为Publisher的简单方法
  8. open表和closed表_011 Ruby 多Word表写入Excel
  9. c语言生成随机的坐标,C语言文件的随机读写
  10. 宣战抖音!腾讯与头条之战的新局面与猜想
  11. iPhone清理喇叭灰尘_厉害了!原来可以这样一键清理 iPhone 喇叭灰尘!
  12. java爬虫 教程_Java爬虫其实也很简单,教你实用的入门级爬虫
  13. 理解 LSTM 网络
  14. 小熊派 LVGL 移植文件系统
  15. sync.Pool 使用
  16. Android 手机红外遥控器实现(转)
  17. 量子信息matlab,matlab在量子力学中的应用.PDF
  18. 输入某年某月某日,判断这一天是这一年的第几天?(JS实现)
  19. python下的考勤签到系统
  20. c语言调试时窗口一闪就没了,VS2012编译C语言代码运行出现黑框一闪就没了

热门文章

  1. String tirm()方法去不掉的空格
  2. 中信易卡,你值得搬砖吗?
  3. Greenplum6.x搭建_安装
  4. 服务器部署邮件功能_真正连续部署的功能标志
  5. Python selenium 爬取淘宝商品
  6. Android 的monkey测试及排错步骤
  7. xShell6远端登录Linux登录错误Connecting to 192.168.112.128:22... Could not connect to ‘192.168.112.128‘ (p
  8. 摩纳哥通过与华为合作 成为欧洲首个实现5G全覆盖国家
  9. [模型库]两款经典puma560机器人三维模型
  10. 儿童节html5小游戏,适合儿童节活动上玩的亲子互动小游戏