You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python的map函数处理列表中的字典以运行自定义函数

问题解决:批量生成学生证文本的map函数用法修正

原代码的两个核心错误:

  • map函数用法完全错误:map(card, **data)不符合语法逻辑,**用于解包字典作为函数关键字参数,但map的第二个参数是可迭代对象,不能直接对列表用**解包。
  • 数据字典存在笔误:第二个字典的键写成了'F_Name:'(多了个冒号),会导致调用card函数时缺失F_Name参数。

修正后的完整代码:

def card(Name, F_Name, Roll_No, Program):    
    x = f'''
    University Name
    
    Name: {Name}
    Father Name: {F_Name}
    Roll No: {Roll_No}
    Program: {Program}
    '''
    return x

# 修正第二个字典的键名错误
data = [
    {'Name':'Student1','F_Name':"student's 1 father",'Roll_No':'123','Program':'BSCS'},
    {'Name':'student2','F_Name':"student's 2 father",'Roll_No':'456','Program':'BSCS'},
    {'Name':'student3','F_Name':"student's 3 father",'Roll_No':'789','Program':'BSCS'}
]

# 用lambda遍历字典并解包为card函数的关键字参数
id_card = list(map(lambda d: card(**d), data))

# 遍历打印每个学生证文本,提升可读性
for card_text in id_card:
    print(card_text)

关键修改说明:

  1. map调用逻辑修正:通过lambda d: card(**d)作为map的第一个参数,每次迭代data中的字典时,自动把字典键值对解包成card函数的关键字参数,完美匹配函数的参数列表。
  2. 数据笔误修复:把第二个字典的'F_Name:'改为'F_Name',确保参数传递完整。
  3. 输出优化:将原代码直接打印列表的方式,改为遍历打印每个学生证文本,结果更直观。

内容的提问来源于stack exchange,提问作者Saqlain Mushtaque

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 13:36:33