【发布时间】:2020-05-17 20:22:31
【问题描述】:
我有一个包含行号和列号的列表,如下所示:
list_of_lists = [[100, 300],
[100, 301],
[100, 302],
[101, 200],
[101, 201],
[102, 210]]
其中行号是每个子列表的第一个值;第二个值的列号。
我需要以某种方式将其转换为字典列表,如下所示:
dict = [{'row': 100, 'columns': [300, 301, 302]},
{'row': 101, 'columns': [200, 201]},
{'row': 102, 'columns': 210}]
关于如何做到这一点的任何建议?
【问题讨论】:
-
效率低下,然后改进。
-
到目前为止您尝试过什么?提示:您可能希望所有值都具有相同的结构,因此在最后一项中使用单个值的列表,而不仅仅是不在列表中的值
-
我按照@Datanovice 的建议尝试了 defaultdict 并且成功了。我还使用 numpy.unique 仅获取唯一的列值。像这样: [{'row': k, 'column': np.unique(v)} for k,v in value_dict.items()]
标签: python list dictionary type-conversion grouping