2014-03-03 29 views
0

我想過濾掉字典列表中元組中最後一個值。例如在Python中過濾出字典列表中的值

X = [{'a': (123, 12445), 'b': (234, 34)}, {'a': (45666, 4), 'b': (3, 12)}] 

Y = [{'a': 123, 'b': 234}, {'a': 45666, 'b': 3} ] 

我嘗試:

[{ j: i[j][0] } for j in i.keys() for i in result ] 

但我得到這個:

[{'a': 123}, {'a': 45666}, {'b': 234}, {'b': 3}] 

任何幫助嗎?

回答

3

編輯:

字典推導只在Python 2.7+工作。既然你是在Python 2.6中,你可以使用dictgenerator expression

>>> X = [{'a': (123, 12445), 'b': (234, 34)}, {'a': (45666, 4), 'b': (3, 12)}] 
>>> [dict((k, v[0]) for k,v in x.iteritems()) for x in X] 
[{'b': 234, 'a': 123}, {'b': 3, 'a': 45666}] 
>>> 
+0

無論哪種方式,我得到的語法錯誤:無效的語法。我正在使用Python 2.6 – NullException

+0

使用編輯,它的工作原理。 – NullException