假设我们有一个这样的字典列表:

l = [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}, {'a': 5, 'b': 6}]

我想将每个 a-key 的值加一。使用这样的循环很容易实现:
for dictionary in l:
  dictionary['a'] += 1

但是也可以通过 map 和 lambda 的组合来做到这一点吗?它必须是这样的:
l = map(lambda x: x+1, l)

但我不知道如何在 lambda 中指定 a 键。 lambda x['a'] 不起作用。有什么建议么?

提前致谢!

最佳答案

l = [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}, {'a': 5, 'b': 6}]
l = map(lambda x: {'a':x['a']+1,'b':x['b']}, l)
print l #in python 3 you need convert map to list list(l)
>>>[{'a': 2, 'b': 2}, {'a': 4, 'b': 4}, {'a': 6, 'b': 6}]

关于python - 使用 map 和 lambda 增加字典列表中的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33479861/

10-12 18:22
查看更多