百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python黑科技:用列表和字典玩转函数存储与调用,代码效率翻倍

off999 2025-06-10 17:26 34 浏览 0 评论

在日常Python开发中,你是否经常遇到这样的场景:需要根据不同的条件执行不同的函数,代码里堆满了if-else分支?或者需要批量处理一系列相似操作,却只能写重复的调用代码?今天教你通过列表和字典实现优雅的函数存储与调用!


函数:Python中的一等公民

在Python中,函数不仅仅是可执行代码块,它们还是一等对象(First-Class Objects)。这意味着函数可以:

  1. 被赋值给变量
  2. 存储在数据结构中
  3. 作为参数传递给其他函数
  4. 作为其他函数的返回值

这个特性为我们提供了极大的灵活性,让我们看看如何利用它优化代码。


列表:函数的顺序执行利器

适用场景:需要按顺序执行多个函数的场景(如数据处理管道)

# 定义数据处理函数
def clean_data(data):
    print("清洗数据...")
    return data.strip()

def transform_data(data):
    print("转换数据格式...")
    return data.upper()

def save_data(data):
    print(f"保存数据: {data}")
    return True

# 创建函数管道
processing_pipeline = [
    clean_data,
    transform_data,
    save_data
]

# 执行数据处理流程
raw_data = "  python rocks!  "
result = raw_data

for func in processing_pipeline:
    result = func(result)
    print(result)

优势

  • 新增处理步骤只需修改列表
  • 执行顺序一目了然
  • 方便批量操作(如机器学习特征工程)

字典:函数的动态调度中心

适用场景:需要根据输入参数动态选择函数的场景(如命令分发)

# 定义计算操作
def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

def multiply(a, b):
    return a * b

# 创建操作映射字典
operations = {
    'add': add,
    'subtract': subtract,
    'multiply': multiply,
    'power': lambda a,b:a**b  # 使用lambda表达式
}
# 用户选择操作
user_choice = 'power'
result = operations[user_choice](2, 3)
print(f"2的3次方结果是: {result}")  # 输出: 8

为什么选择这种方式?

  1. 代码简洁性:减少大量if-else分支
  2. 扩展便捷性:新增功能只需修改数据结构
  3. 维护友好性:所有函数映射关系一目了然
  4. 动态灵活性:运行时修改函数映射关系
  5. 解耦设计:函数定义与调用逻辑分离

性能优化小贴士

  1. 使用functools.lru_cache缓存计算结果
  2. 对于简单操作,lambda比完整函数定义更轻量
  3. 字典查找比列表遍历更高效(O(1) vs O(n))
  4. 使用结构模式匹配(Python 3.10+)作为补充
# Python 3.10+ 结构模式匹配
match user_command:
    case "start":
        start_process()
    case "stop":
        stop_process()
    case "status":
        check_status()

实战案例:构建计算器应用

from math import sqrt

operations = {
    '+': lambda a, b: a + b,
    '-': lambda a, b: a - b,
    '*': lambda a, b: a * b,
    '/': lambda a, b: a / b,
    '√': lambda a: sqrt(a),
    '**': lambda a, b: a**b
}

def calculator():
    while True:
        expr = input("输入表达式 (例如 5 + 3): ").split()
        
        if not expr:
            break
            
        op = expr[1]
        if op in operations:
            try:
                a = float(expr[0])
                # 处理一元操作符
                if len(expr) == 2:
                    result = operations[op](a)
                else:
                    b = float(expr[2])
                    result = operations[op](a, b)
                print(f"结果: {result}")
            except Exception as e:
                print(f"错误: {e}")
        else:
            print("不支持的操作符")

calculator()

掌握函数存储与调用的艺术,能让你的Python代码从"能用"跃升到"优雅"。列表和字典存储函数都是Python开发者的必备技能,当你在代码中看到冗长的if-else链时,不妨试试这种更Pythonic的解决方案!你有在项目中用过这种技巧吗?欢迎分享你的实战经验!

<script type="text/javascript" src="//mp.toutiao.com/mp/agw/mass_profit/pc_product_promotions_js?item_id=7512256478669963826"></script>

相关推荐

召唤系统之最强帝国(召唤系统之最强人皇)

名字叫做《绝世皇帝》。讲述林谦,地球的国战游戏达人,发生意外后,重生到异界。然而,在这异界之中,除了修炼天赋好点,却没有特殊的一技之长。炼丹他炸炉,炼器成废铁,更别提阵法这些其他生活技能,一窍不通。不...

如何将网址粘贴为链接(网址复制到word怎么变成链接)

可以复制网址链接的方法有多种,最常用的方法是在浏览器中打开需要复制的网页,在地址栏中选中网址,然后右键选择“复制”,或者按下“Ctrl+C”快捷键,即可将网址复制到剪贴板中。另外,某些应用程序也提供了...

i主题app下载(i主题官方版)

OPPO手机使用i主题的操作方法如下首先我们打开OPPO手机,在手机桌面找到i主题的图标,点击图标进入到主题页面,在主题页面,我们选择主题专区,然后再推荐主题专区里面找到你喜欢的主题之后,点击...

win10官方下载工具打不开(win10下载软件打不开怎么办)
win10官方下载工具打不开(win10下载软件打不开怎么办)

步骤/方式1首先右击win10桌面的此电脑图标,选择管理进入。步骤/方式2展开本地用户和组,点击用户,右击右侧的Administrator账户,选择属性打开,然后取消账户已禁用的勾选点击确定。步骤/方式3然后再次登录Administrato...

2025-12-18 04:03 off999

系统错误怎么解决(微信系统错误怎么解决)

1、最后一次正确的配置:在开机启动未进入到操作系统之前我们按下F8键,选择“最后一次正确的配置”然后回车即可。此方法只能解决因出现配置问题进不了系统的情况(例如更换新硬件或加载新驱动后造成的蓝屏),由...

电脑自带的防火墙怎么关(电脑的防火墙如何关闭)
电脑自带的防火墙怎么关(电脑的防火墙如何关闭)

点击开始,点击设置,进入设置后我们可以直接在上方的搜索框中直接搜索【defender】,就会弹出防火墙。点击进入防火墙后,在左侧的列表中找到【启用或关闭Windowsdefender防火墙】,并且点击进入。进入后,就可以自行关闭所有的防...

2025-12-18 03:03 off999

光猫和路由器哪个网速快(光猫网速快还是路由器网速快)

两个都快。这要从两个设备的功能说起。光猫是把光信号转变成数字信号的一种设备,随着光猫技术的发展,现在光猫也集成了路由器的功能,也带有有线和无线,只要有光纤加上光猫,就可以实现有线或者无线上网。路由器的...

台式电脑运行一段时间就死机

1、散热不良:显示器、电源和CPU工作时间太长会导致死机,给风扇除尘,上油。2、灰尘杀手:机器内灰尘过多也会引起死机故障。定期清洁机箱。3、内存条故障:主要是内存条松动,内存芯片本身质量所致,应根...

高清windows免费版观看(高清windows免费版观看网站)

方法一:1、右键单击开始菜单----运行2、在运行对话框中输入:devmgmt.msc,展开:显卡适配器,右击所列的显卡适配器,点击卸载。3、卸载后重新安装兼容Win10的显卡驱动,建议去官方下载...

h3c官网(H3C官网登录账号)

1H3C防火墙官网是存在的,可以通过搜索引擎或输入官方网址进行访问。2H3C防火墙官网提供了产品信息、技术支持、解决方案和服务支持等各种资源,帮助用户全面了解和使用H3C防火墙产品。同时,还有在线...

系统流小说下载(系统流小说大全完本)

全能奇才、末世之兑换高手、穿越之兑换无敌、:重生之我能升级、重生之模拟游戏、超级物品、戒指也疯狂、全职天才、疯狂道具、星戒、超级游戏分身、重生之神才风流、全能闲人、逆天作弊器之超级游戏、宅男之游戏人生...

win7网络设置初始化(win7网络设置初始化方法)

1、首先在操作系统桌面上,点击左下角开始按钮选择控制面板选项进入。2、进入控制面板主界面,点击查看方式下拉按钮选择大图标进入。3、切换至所有控制面板项,点击恢复选项进入。4、进入恢复界面,点击高级恢复...

家用笔记本电脑哪个牌子实惠又好用

在用机械革命s1pro键盘不好用,录音功能不好用,其它还行吧一分价钱一分货清华同方品牌的笔记本最便宜,然14最大的特点就是便宜,仅售3000元,属于新品笔记本中的超低价位。屏幕方面,熟悉的1080p...

免费使用的数据恢复软件(真正的免费的数据恢复软件)

1、在误删除数据后,无论是硬盘、U盘、SD卡还是其他存储设备,最好马上停止写入新的数据,保持现状,然后找适当的数据恢复软件进行恢复。请勿使用非专业软件,以免导致文件彻底无法恢复!  2、在误删除数据后...

感冒流鼻涕怎么办最简单方法

由于受凉感冒引起鼻腔腺体分泌旺盛导致鼻涕增多,建议在医生指导下使用玉屏风颗粒口服治疗促进恢复正常,可以进食鼻腔腺体分泌,改善流鼻涕,打喷嚏症状,另外注意保暖,不要进食辛辣刺激性食物,避免疲劳,多食用容...

取消回复欢迎 发表评论: