python-3.x - 展平字典python列表
问题描述
所以我有以下列表列表,我试图通过仅在列表项完全匹配时合并重复项来减小大小。订单很重要(更改项目订单将是一个问题)。它们也不是大小相等的列表。
例子:
List = [["a", "b", "c", "d", "e"], ["a", "b"], ["a", "b", "c", "d", "e", "f"], ["a"], ["a", "b", "c", "d", "e"], ["a", "b"]]
我期待以下输出:
List = [["a", "b", "c", "d", "e"], ["a", "b"], ["a", "b", "c", "d", "e", "f"], ["a"]]
这是代码:
def consolidate(all_list):
a = {}
for v in all_list:
if len(v) > 0:
k = v[0]
if k not in a: a[k] = []
a[k].append(v[1:])
for k in a:
a[k] = consolidate(a[k])
return a
但是,它似乎不起作用。
解决方案
只需这样做:
output = []
for x in List:
if x not in output : output.append(x)
output
输出
[['a', 'b', 'c', 'd', 'e'], ['a', 'b'], ['a', 'b', 'c', 'd', 'e', 'f'], ['a']]
推荐阅读
- angular - 如何从父组件继承样式?
- c# - StreamReader 读取 CRLF
- ruby-on-rails - Rails,Chosen,Bootstrap:如何将 Bootstrap 样式应用于多选字段
- spring - 春季安全:GrantedAuthority 未导入
- tensorflow - 在训练和测试数据集中随机拆分 tf 数据集
- ruby-on-rails - 如何从生成的 URL 中删除端口?导轨
- google-cloud-platform - 如何刷新 dataprep 中的一个数据集?
- tomcat - Markdown 服务器和 Web 服务器有什么区别?
- r - 在 ubuntu 上为 R 留下一个库路径
- ruby - How to run unit tests before building a ruby gem?