Python有关列表的递归练习

embedded/2025/2/6 8:54:51/

寒假打卡第二十天,当前mit6.100L进度(16/26) 今天依然是补一下递归作业。

递归,递归!胡不归?
无基例之故,何以层层自缠?

递归,递归!胡不止?
栈溢连连作祟,终陷无穷循环!

以下两题是我在这门课的作业觉得挺有意思的两题。

1、L是一个包含小写字母的非空列表,编写一个递归函数返回其在字母表最靠前的字母。

python">def f(L):""" L is a non-empty list of lowercase letters.Returns the letter earliest in the alphabet. """if len(L) == 1:return L[0]else:if L[0] < f((L[1:])):return L[0]else:return f(L[1:])print(f(['z', 'a', 'b', 'c', 'd']))  # should print 'a'

2、L是一个列表,e是一个整数,编写一个递归函数返回e在L中出现的次数,包括L里的子列表。

python">def h(L, e):""" L is list, e is an intReturns a count of how many times e occurrs in L or (recursively) any sublist of L"""if len(L) == 0:return 0else:if type(L[0])==int:if L[0] == e:return 1+h(L[1:], e)else:return h(L[1:], e)elif type(L[0])== list:if e in L[0]:return h(L[0], e)+h(L[1:], e)else:return h(L[1:], e)print(h([1,2,[3],1], 1))        # should print 2
print(h([1,2,[3,1,[1,[1]]]], 1))  # should print 4


http://www.ppmy.cn/embedded/159980.html

相关文章

深度学习模型在汽车自动驾驶领域的应用

汽车自动驾驶是一个高度复杂的系统&#xff0c;深度学习和计算技术在其中扮演核心角色。今天简单介绍一下自动驾驶领域常用的深度学习模型及其计算原理的解析。 1. 深度学习模型分类及应用场景 1.1 视觉感知模型 CNN&#xff08;卷积神经网络&#xff09; 应用&#xff1a;图…

Rust HashMap :当储物袋遇上物品清单

开场白&#xff1a;哈希映射的魔法本质 在Rust的奇幻世界里&#xff0c;HashMap就像魔法师的储物袋&#xff1a; 键值对存储 → 每个物品都有专属咒语&#xff08;键&#xff09;和实体&#xff08;值&#xff09;快速查找 → 念咒瞬间召唤物品动态扩容 → 自动伸展的魔法空间…

Github 2025-02-01 开源项目月报 Top20

根据Github Trendings的统计,本月(2025-02-01统计)共有20个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目8TypeScript项目3Jupyter Notebook项目2Rust项目2HTML项目2C++项目1Ruby项目1JavaScript项目1Svelte项目1非开发语言项目1Go项目1Oll…

基于ArcGIS的SWAT模型+CENTURY模型模拟流域生态系统水-碳-氮耦合过程研究

流域是一个相对独立的自然地理单元&#xff0c;它是以水系为纽带&#xff0c;将系统内各自然地理要素连结成一个不可分割的整体。碳和氮是陆地生态系统中最重要的两种化学元素&#xff0c;而在流域系统内&#xff0c;水-碳-氮是相互联动、不可分割的耦合体。随着流域内人类活动…

11 3D变换模块(transform3d.rs)

transform3d.rs代码定义了一个名为 Transform3D 的 Rust 结构体&#xff0c;它用于表示一个3D变换矩阵。这个结构体是泛型的&#xff0c;包含三个类型参数&#xff1a;T、Src 和 Dst。其中&#xff0c;T 用于矩阵元素的数据类型&#xff0c;Src 和 Dst 用于表示变换的源和目标类…

Ruby 模块(Module)

Ruby 模块&#xff08;Module&#xff09; 引言 在Ruby编程语言中&#xff0c;模块&#xff08;Module&#xff09;是一种重要的组织代码的方式。它允许开发者将相关的方法和变量组合在一起&#xff0c;形成逻辑上的分组。模块在Ruby中扮演着类似于类和模块的角色&#xff0c…

JAVA学习-练习试用Java实现“读取一个大型CSV文件,并将其内容存储到内存中的数据结构(如ArrayList)中”

问题&#xff1a; 编写一个Java程序&#xff0c;读取一个大型CSV文件&#xff0c;并将其内容存储到内存中的数据结构&#xff08;如ArrayList&#xff09;中。 解答思路&#xff1a; 在Java中&#xff0c;读取大型CSV文件并将其内容存储到内存中的数据结构&#xff08;如ArrayL…

2 Flink 部署及启动

2 Flink 部署及启动 1. Flink 在 Yarn 上的部署架构2. 启动集群3. 模式一: yarn-session4. 模式二: yarn-cluster Flink 支持多种安装模式: 1.local&#xff08;本地&#xff09;——单机模式&#xff0c;一般不使用&#xff1b; 2.standalone——独立模式&#xff0c;Flink 自…