【发布时间】:2016-05-15 05:04:53
【问题描述】:
我正在尝试编写一个单行代码来从 python 中的 2 级嵌套字典中提取键。
这是我的数据示例:
values = [(u'Andy', OrderedDict([(u'en', 102)])), (u'Ben', OrderedDict([(u'es', 1)])), (u'Jane', OrderedDict([(u'EN', 719), (u'en', 969)])), (u'Steve', OrderedDict([(u'fr', 1)])), (u'Susanne', OrderedDict([(u'nl', 2)]))]
预期的结果是:
[u'en', u'es', u'EN', u'fr', u'nl']
到目前为止我已经尝试过:
map(lambda x: x[1].keys(), values.items())
AttributeError: 'unicode' object has no attribute 'keys'
reduce(lambda k, v: v.keys(), values.items())
AttributeError: 'tuple' object has no attribute 'keys'
当我在 Jinja 模板中插入代码时,这需要是单行的,因此我正在尝试使用 lambda。不过,我对 Python 还是很陌生,也许我误解了什么……?
【问题讨论】:
-
结果需要保持顺序吗?
-
嗨@timgeb 不需要保留订单。
标签: python dictionary lambda key reduce