给python一个键值对字典列表,即
[{'color': 'red', 'value': 'high'}, {'color': 'yellow', 'value': 'low'}]
如何仅从字典值构造元组列表:
[('red', 'high'), ('yellow', 'low')]
答案 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')]