从字典值构造元组

时间:2017-06-14 15:39:34

标签: python

给python一个键值对字典列表,即

[{'color': 'red', 'value': 'high'}, {'color': 'yellow', 'value': 'low'}]

如何仅从字典值构造元组列表:

[('red', 'high'), ('yellow', 'low')]

5 个答案:

答案 0 :(得分:6)

尽可能简单:

result = [(d['color'], d['value']) for d in dictionarylist]

答案 1 :(得分:3)

如果订单很重要,那么:

[tuple(d[k] for k in ['color', 'value']) for d in data]

或者:

[(d['color'], d['value']) for d in data]

其他没有订单保证或来自OrderedDict(或依赖Py3.6 dict):

[tuple(d.values()) for d in data]

答案 2 :(得分:0)

动态词典列表

在这种情况下,我会采用这种方式,我希望我能得到帮助。

tuple_list = []
for li_item in list_dict:
    for k, v in li_item.items():
        tuple_list.append((k,v))

当然,下面有一个单行选项:

tupples = [
    [(k,v) for k, v in li_item.items()][0:] for li_item in list_dict
]

答案 3 :(得分:0)

要泛化定义了self.__dict__的任何类实例,您还可以使用:

tuple([self.__dict__[_] for _,__ in self.__dict__.items()])

答案 4 :(得分:-2)

你自己可以做到这一点,不能吗?

a = [{'color': 'red', 'value': 'high'}, {'color': 'yellow', 'value': 'low'}]
b = [tuple(sub.values()) for sub in a]  # [('red', 'high'), ('yellow', 'low')]