Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでリスト文字列を辞書に変換する


ここに、要素を含む文字列が表示されてリストになるシナリオがあります。ただし、これらの要素は、キーと値のペアを表すこともでき、辞書になります。この記事では、そのようなリスト文字列を取得して辞書にする方法を説明します。

分割とスライスあり

このアプローチでは、分割関数を使用して要素をキーと値のペアとして分離し、スライスを使用してキーと値のペアを辞書形式に変換します。

stringA = '[Mon:3, Tue:5, Fri:11]'
# Given string
print("Given string : \n",stringA)
# Type check
print(type(stringA))
# using split
res = {sub.split(":")[0]: sub.split(":")[1] for sub in stringA[1:-1].split(", ")}
# Result
print("The converted dictionary : \n",res)
# Type check
print(type(res))

出力

上記のコードを実行すると、次の結果が得られます-

('Given string : \n', '[Mon:3, Tue:5, Fri:11]')

('The converted dictionary : \n', {'Fri': '11', 'Mon': '3', 'Tue': '5'})

evalとreplaceを使用

eval関数は、文字列から実際のリストを取得し、replaceによって各要素がキーと値のペアに変換されます。

stringA = '[18:3, 21:5, 34:11]'
# Given string
print("Given string : \n",stringA)
# Type check
print(type(stringA))
# using eval
res = eval(stringA.replace("[", "{").replace("]", "}"))
# Result
print("The converted dictionary : \n",res)
# Type check
print(type(res))

出力

上記のコードを実行すると、次の結果が得られます-

('Given string : \n', '[18:3, 21:5, 34:11]')

('The converted dictionary : \n', {18: 3, 34: 11, 21: 5})


  1. Pythonのリストvsタプルvs辞書

    リストオブジェクトとタプルオブジェクトはシーケンスです。ディクショナリは、キーと値のペアのハッシュテーブルです。リストとタプルは、アイテムの順序付けられたコレクションです。辞書は順序付けられていないコレクションです。 リストオブジェクトと辞書オブジェクトは変更可能です。つまり、新しいアイテムを追加したり、アイテムを削除したりすることができます。タプルは不変のオブジェクトです。タプルオブジェクトでは、追加または削除操作はできません。 それぞれがカンマ区切りのアイテムのコレクションです。リストアイテムは角かっこ[]で囲まれ、タプルアイテムは丸かっこまたはかっこ()で囲まれ、辞書アイテムは中かっこ

  2. Pythonで文字列を辞書に変換する方法は?

    ここでast.literal_eval()を使用して、文字列をPython式として評価できます。式ノードまたはPython式を含む文字列を安全に評価します。提供される文字列またはノードは、文字列、数値、タプル、リスト、dict、ブール値、およびなしのPythonリテラル構造のみで構成されます。例:  >>>import ast >>>x = ast.literal_eval("{'foo' : 'bar', 'hello' : 'world'}") >>