map(tuple, map(lambda row: [float(row[0]), int(row[1]), parse(row[2])], res))
有人可以帮我解决这里的语法吗?我试图明确了解tuple
和lambda
所指的内容。
答案 0 :(得分:2)
tuple()
是“元组”对象的构造函数,可以将列表(或其他序列对象)转换为元组。
例如:
>>> a = [1, 2, 3]
>>> a
[1, 2, 3]
>>> tuple(a)
(1, 2, 3)
在您的示例中使用时,它会将每个lambda
表达式的结果从列表转换为元组。这似乎有点多余,因为以下内容应该是等效的:
map(lambda row: (float(row[0], int(row[1], parse(row[2])), res)
请注意使用()
括号而不是[]
方括号来创建元组而不是列表。
答案 1 :(得分:2)
如果更容易理解,可以从
重写几次map(tuple, map(lambda row:
[float(row[0]), int(row[1]), parse(row[2])], res))
到
map(lambda row: (float(row[0]), int(row[1]), parse(row[2])), res)
到
[(float(row[0]), int(row[1]), parse(row[2])) for row in res]
这并没有真正回答你的问题,但我觉得它更容易阅读;)