Python中os模块、嵌套函数、递归函数及lambda函数的简单应用

本文介绍了如何使用Python进行递归遍历目录、定义嵌套函数打印斐波那契数列,以及对列表进行排序、计算元素之和和过滤特定元素。同时展示了map、filter和reduce函数的运用,涵盖了文件操作、函数设计和列表处理等多个方面。
摘要由CSDN通过智能技术生成

目录

一.递归访问目录: 且目录中嵌套目录,有层次的列出给定目录中所有的文件和文件夹

二.定义一个嵌套函数,

三.定义一个递归函数:打印斐波那契数列

四.对列表进行排序: list_data = ["grape", "peach", "berry", "pineapple", "apple", "strayberry", "watermelon"]

五.利用map函数: 计算三个列表,相同位置元素之和

六.利用filter函数过滤列表中所有带a的字符串

七.利用reduce计算1 + 2 + 3...+ 100之和


一.递归访问目录: 且目录中嵌套目录,有层次的列出给定目录中所有的文件和文件夹

import os


def display_path(path, count=0):
    for file_name in os.listdir(path):
        sub_path = os.path.join(path, file_name)
        if os.path.isdir(sub_path):
            print("\t|" * count, file_name)
            sub_count = count + 1
            display_path(sub_path, sub_count)
        if os.path.isfile(sub_path):
            print("\t|" * count, file_name)


display_path('E:\\secure')

结果:

 ​​​​​​​

二.定义一个嵌套函数,

外层函数打印this is outing function

内层函数功能:打印This is inner function

def outer():
    print("this is outing function")

    def inner():
        print("this is inner function")
    inner()


outer()

三.定义一个递归函数:打印斐波那契数列

F[n]=F[n-1]+F[n-2](n>=2,F[0]=0,F[1]=1)

# 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家
# 莱昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是
# 这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波
# 那契数列以如下被以递推的方法定义:
# F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)


def fibonacci_series(arg):
    if arg == 0:
        return 0
    elif arg == 1:
        return 1
    elif arg >= 2:
        return fibonacci_series(arg - 1) + fibonacci_series(arg - 2)


print(fibonacci_series(6))

四.对列表进行排序: list_data = ["grape", "peach", "berry", "pineapple", "apple", "strayberry", "watermelon"]

排序规则:按照最后一个字符进行排序,如果最后一个字符相等,按照第一个字符排序

list_data = ["grape", "peach", "berry", "pineapple",
             "apple", "strawberry", "watermelon"]


def fruit_sort(name):
    return name[-1], name[0]


list_data.sort(key=lambda name: (name[-1], name[0]))
print(list_data)

结果如下:

五.利用map函数: 计算三个列表,相同位置元素之和

list1 = [1, 2, 3]

list2 = [4, 5, 6]

list3 = [7, 8, 9]

list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = [7, 8, 9]

sum_list = list(map(lambda i, j, k: (i+j+k), list1, list2, list3))
print(sum_list)

六.利用filter函数过滤列表中所有带a的字符串

list_data = ["grape", "what", "which", "you", "friend", "am"]

list_data = ["grape", "what", "which", "you", "friend", "atm"]
filter_data = list(filter(lambda x: 'a' not in x, list_data))
print(filter_data)

七.利用reduce计算1 + 2 + 3...+ 100之和

from functools import reduce
list_data = list(range(1, 101))
sum_data = reduce(lambda x, y: x+y, list_data)
print(sum_data)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值