Python - 使用 lambda 格式化和映射列表 - 'list'对象没有属性'map'



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

params = ",".join(flagged_job_names.map(lambda x: "?"))
cursor.execute(sql.format(params), flagged_job_names)

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))

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

最新更新