Python-リストのリストをツリーのようなdictに変換します
ネストされたリストを指定して、その要素をツリーデータ構造の一部と見なすことができる辞書に変換します。この記事では、ネストされたリストを変換して、要素がデータ構造のようなツリーを表す辞書を追加する2つのアプローチを紹介します。
スライスの使用
スライスしてリスト内のアイテムを反転し、リスト内にアイテムが存在するかどうかを確認します。存在しない場合は無視し、存在しない場合はツリーに追加します。
例
def CreateTree(lst): new_tree = {} for list_item in lst: currTree = new_tree for key in list_item[::-1]: if key not in currTree: currTree[key] = {} currTree = currTree[key] return new_tree # Given list listA = [['X'], ['Y', 'X'], ['Z', 'X'], ['P', 'Z', 'X']] print(CreateTree(listA))
上記のコードを実行すると、次の結果が得られます-
出力
{'X': {'Y': {}, 'Z': {'P': {}}}}
reduceとgetitemの使用
functoolsとoperatorモジュールを使用して、関数reduceとgetitemを取得します。これらの関数を使用して、リストからアイテムを取得し、アイテムをツリー構造に設定する2つの関数を定義します。ここでも、スライスアプローチを使用してリストの要素を逆にし、作成した2つの関数を適用して、要素がツリー構造になっている辞書を作成します。
例
from functools import reduce from operator import getitem def getTree(tree, mappings): return reduce(getitem, mappings, tree) def setTree(tree, mappings): getTree(tree, mappings[:-1])[mappings[-1]] = dict() # Given list lst = [['X'], ['Y', 'X'], ['Z', 'X'], ['P', 'Z', 'X']] tree = {} for i in lst: setTree(tree, i[::-1]) print(tree)
上記のコードを実行すると、次の結果が得られます-
出力
{'X': {'Y': {}, 'Z': {'P': {}}}}
-
文字のリストを文字列に変換するPythonプログラム
Pythonはこの種の変換をたくさん必要とします。たとえば、このような変換はシリアル化の目的で役立ちます。このような変換の例は、-です。 ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'] to "hello world" Pythonには、このような変換に使用できる結合メソッドがあります。オブジェクトを連結するために使用される区切り文字列
-
Pythonでリストをタプルに変換する方法は?
タプル関数に渡すだけで、リストをタプルに変換できます。 例 my_list = [1, 2, 3] my_tuple = tuple(my_list) print(my_tuple) 出力 これにより、出力が得られます- (1, 2, 3)