1

入力は次のように与えられます a = "test1,test2,test3,test4,...etc"

以下のような出力が必要です。

b={"test1":"test1","test2":"test2","test3":"test3",..etc}

どうすればよいか教えてください。

4

3 に答える 3

6

ループ内で辞書を作成するには、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(','))
于 2012-12-19T12:36:58.663 に答える
2

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
于 2012-12-19T13:17:20.860 に答える
0

別の方法:

tmp = a.split(",")
b = dict(zip(tmp,tmp))
于 2012-12-19T15:30:51.750 に答える