2017-08-24 102 views
-4

我有这样的:合并与条件列出了蟒蛇

list_one = [[['id'], ['value']], [['id'], ['value2']] , [['id'], ['value3']]] 

什么,我想有是:

list_two = [['id'], ['value'], ['value2'], ['value3']] 

基于每个ID我有内部list_one。

真的很感谢帮助。

+2

并不清楚,因为你没有提供不同的'id'值 –

+0

首先展示你已经尝试 – Kallz

+0

一个例子是有你继续使用的原因长度1'列表的'str's而不是'str's?如果你只是使用'str',答案会更加优雅,你的数据将更容易处理。 –

回答

1

你可以试试这个:

import itertools 
list_one = [[['id'], ['value']], [['id'], ['value2']] , [['id'], ['value3']]] 

new_data = list(set(i[0] for i in itertools.chain.from_iterable(list_one))) 

final_list = list(map(lambda x: [x], sorted(new_data, key=len))) #must be casted to a list in Python3 because map returns a map instance. 
+0

很酷。这会返回一个'map'实例,对吗? – patrick

+0

@patrick感谢您指出。在Python3中,它返回一个地图实例,虽然在Python2中,它只是返回一个列表。由于OP没有标记python3.x,我没有将地图转换为列表。但是,我会注意到它。 – Ajax1234

+0

啊,真的很高兴知道重新Py 2 - Py 3,谢谢! – patrick