入力は次のように与えられます a = "test1,test2,test3,test4,...etc"
以下のような出力が必要です。
b={"test1":"test1","test2":"test2","test3":"test3",..etc}
どうすればよいか教えてください。
入力は次のように与えられます a = "test1,test2,test3,test4,...etc"
以下のような出力が必要です。
b={"test1":"test1","test2":"test2","test3":"test3",..etc}
どうすればよいか教えてください。
ループ内で辞書を作成するには、dict内包表記を使用します。
a
変数がコンマ区切りの値を持つ文字列であるとすると、次のように機能します。
{v: v for v in a.split(',')}
ここで、コンマ区切りリストの各値を、結果の辞書のキーと値の両方として使用します。
dictの{k: v ...}
理解はPython2.7および3.0で追加されましたが、以前のPythonバージョンでは、代わりに2値のタプルが生成されます。
dict((v, v) for v in a.split(','))
Martijn Pietersの正解への追加:
dictの理解は、Pythonバージョン>=2.7でのみ機能します。dict()
以前のバージョンのPythonでは、2値のタプルを作成し、それらを関数に渡すことができます。
dict((item, item) for item in a.split(','))
そして最後に、このオプションについても言及すると、これは長い道のりです。
d = {} # alternatively, d = dict()
for item in a.split(','):
d[item] = item
別の方法:
tmp = a.split(",")
b = dict(zip(tmp,tmp))