Pythonでは、リストの中のリストからユニークな要素を取得するためのいくつかの方法があります。ここでは、その中でも特に効率的な方法をいくつか紹介します。
セットを使用する
Pythonのセットはユニークな要素のみを保持するため、リストからユニークな要素を取得するのに役立ちます。以下に、セットを使用してリストの中のリストからユニークな要素を取得するコードを示します。
testdata = [['9034968', 'ETH'], ['14160113', 'ETH'], ['9034968', 'ETH'], ['11111', 'NOT'], ['9555269', 'NOT'], ['15724032', 'ETH'], ['15481740', 'ETH'], ['15481757', 'ETH'], ['15481724', 'ETH'], ['10307528', 'ETH'], ['15481757', 'ETH'], ['15481724', 'ETH'], ['15481740', 'ETH'], ['15379365', 'ETH'], ['11111', 'NOT'], ['9555269', 'NOT'], ['15379365', 'ETH']]
unique_data = [list(x) for x in set(tuple(x) for x in testdata)]
このコードでは、まずtestdata
の各要素(リスト)をタプルに変換し、それらをセットに変換します。そして、そのセットの各要素(タプル)をリストに戻し、それらのリストを含む新しいリストunique_data
を作成します。
itertoolsを使用する
itertools
のchain
関数を使用すると、リストの中のリストをフラット化(1次元のリストに変換)できます。以下に、itertools
を使用してリストの中のリストからユニークな要素を取得するコードを示します。
from itertools import chain
array = [['a','b'], ['a', 'b','c'], ['a']]
unique_values = list(set(chain(*array)))
このコードでは、まずitertools.chain
関数を使用してarray
をフラット化し、それをセットに変換します。そして、そのセットをリストに戻し、新しいリストunique_values
を作成します。
以上のように、Pythonではリストの中のリストからユニークな要素を取得するためのいくつかの方法があります。適切な方法を選択することで、コードの効率性と可読性を向上させることができます。