2011-08-30 32 views
-1

map(tuple, map(lambda row: [float(row[0]), int(row[1]), parse(row[2])], res))python中的這句話是什麼

有人可以幫我一下這裏的語法嗎?我試圖明白tuplelambda是指什麼。

回答

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] 

這並沒有真正回答你的問題,但我認爲它更容易閱讀;)

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) 

注意使用()括號而非[]方括號它創建了一個元組,而不是一個列表。

+0

爲什麼有人想要這樣做 – locoboy

+0

元組是不可變的對象(創建後不能修改),因此可以用作字典鍵。 – eumiro