我可以使用set comprehension从更大的dict列表中创建dict列表吗?

Jam*_*mie 2 python dictionary set python-2.7

我正在使用非规范化表,这在提取唯一信息时提供了一些挑战.如果表格被标准化:

unique_data = list({d['value'] for d in mydata})
Run Code Online (Sandbox Code Playgroud)

会做的伎俩.

但表格没有标准化.

我可以创建一组dict然后我可以变成列表吗?有点像(这给我一个错误):

unique_data_with_id = list({{'id':d['id'], 'value':d['value']} for d in mydata})
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 5

字典是可变的,所以你不能把它们放在一个集合中.解决这个问题的一种方法是使用a namedtuple而不是字典:

IdValueTuple = collections.namedtuple("IdValueTuple", "id value")
unique_data_with_id = list({IdValueTuple(d["id"], d["value"]) for d in mydata})
Run Code Online (Sandbox Code Playgroud)