2017-08-24 3 views
-4

に条件付きのリストをマージします:どのような私が持っているしたいことはあるは、私はこれを持っているのpython

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

:私はlist_one内部で持っている各IDに基づいて

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

本当に助けていただきありがとうございます。

+2

明確ではありませんあなたは –

+0

あなたは – Kallz

+0

を試してみました何を最初に示した値id' '異なると例を提供しなかったので、あなたが使用し続ける理由がある長さ-1' 'str'の代わりに' str'の 'list'ですか? '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

cool。しかし、これは 'map'インスタンスを返しますが、そうですか? – patrick

+0

@patrickそれを指摘してくれてありがとう。 Python3では、mapインスタンスを返しますが、Python2ではリストを返します。 OPはpython3.xにタグをつけなかったので、マップをリストにキャストしませんでした。しかし、私はそれに注意します。 – Ajax1234

+0

ああ、再Py 2 - Py 3を知って本当にいいです、ありがとう! – patrick

関連する問題