2010-12-22 135 views
2

在Python 2.7,我已經習慣了從一個陣列收集鍵/值對,並返回它作爲一個哈希:收集在Python 2.6的鍵/值對

return { u.id : u.name for u in users } 

但事實證明這是行不通的在Python 2.6中:

return { u.id : u.name for u in users } 
          ^
SyntaxError: invalid syntax 

我該如何避免這樣做?

values = {} 

for u in users: 
    values[u.id] = u.name 

return values 

有什麼更好的辦法嗎?

回答

10

只是傳遞構造元組序列的構造函數發生器表達式dict

return dict((u.id, u.name) for u in users) 

這將創建一個相同的字典在以後的版本字典的理解。

+2

你打了我10秒,以一個字符爲字符相同的答案。 :) – EMP 2010-12-22 22:10:54

1
return dict((u.id, u.name) for u in users) 
1

構造函數dict需要成對的迭代。

return dict((u.id, u.name) for u in users)