【问题标题】:Python - format and mapping a list with lambda - 'list' object has no attribute 'map'Python - 使用 lambda 格式化和映射列表 - 'list' 对象没有属性 'map'
【发布时间】:2014-09-30 14:15:45
【问题描述】:

尝试格式化列表,以便我可以在查询中执行它,但得到一个“列表”对象没有属性“地图”,确定为什么? 使用python 2.6 该列表包含一串名称。

params = ",".join(flagged_job_names.map(lambda x: "?"))

cursor.execute(sql.format(params), flagged_job_names)

【问题讨论】:

    标签: python string list python-2.6 python-2.x


    【解决方案1】:

    map 是一个函数,而不是列表的方法。

    params = ",".join(map(lambda x: "?", flagged_job_names))
    

    顺便说一句,您可以使用列表解析或生成器表达式来代替map

    params = ",".join("?" for x in flagged_job_names)
    

    但是对于这种特定情况,以下也是可能的:

    params = ",".join(["?"] * len(flagged_job_names))
    
    params = ",".join("?" * len(flagged_job_names))
    

    最后一个是可能的,因为字符串 (?) 是一个字符。

    【讨论】:

    • @JohnZwinck,补充说。谢谢。
    • 哪个更快 b/c 这个列表很大!!
    • @user3590149,timeit他们。
    • @user3590149,例如:ideone.com/6EmPy8(根据 Python 实现、平台等不同,结果会有所不同)
    猜你喜欢
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 2018-04-15
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    相关资源
    最近更新 更多