python中的这句话是什么?

时间:2011-08-30 07:18:05

标签: python

map(tuple, map(lambda row: [float(row[0]), int(row[1]), parse(row[2])], res))

有人可以帮我解决这里的语法吗?我试图明确了解tuplelambda所指的内容。

2 个答案:

答案 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]

这并没有真正回答你的问题,但我觉得它更容易阅读;)