0

キーが通常の文字列で、値がタプルである辞書があります。その例を以下に示します。

'Europe':(Germany, France, Italy)
'Asia':(India, China, Malaysia)  

次のような辞書項目を表示したい:

'Europe':(RandomStringA:Germany, RandomStringB:France, RandomStringC:Italy)  
'Asia':(RandomStringA:India, RandomStringB:China, RandomStringC:Malaysia)  

以下のコードを試しました:

for k, v in dict.iteritems()  
    print k, "Country1":v[0], "Country2":v[1], "Country3":v[2]  

しかし、これはうまくいかないようです。そのようなタプルでアイテムにタグを付ける方法はありますか? 前もって感謝します!

4

3 に答える 3

1

それを印刷しようとしているだけの場合:

for k, v in dct.iteritems():
    print repr(k)+ ":(" + ", ".join("Country{}:{}".format(i,c) for i,c in enumerate(v, start=1)) + ")"

出力:

'Europe':(Country1:Germany, Country2:France, Country3:Italy)
'Asia':(Country1:India, Country2:China, Country3:Malaysia)

注:repr()そこに引用符を取得する機能を悪用しています。あなたもそうすることができます"'" + str(k) + "'"

コードが機能しない理由:は、辞書の初期化または理解の外での使用です。つまり、できますd = {'a':'b'}が、できませんprint 'a':'b'dictまた、キーワードであるため、変数名として使用しないでください。

私の解決策は、要素が 3 つより多い (または少ない) タプルでも機能します。

于 2013-07-17T22:19:12.670 に答える
0
mainDict = {"Europe": ("Germany", "France", "Italy"),
  "Asia": ("India", "China", "Malaysia")
}

for item in mainDict:
    print "%s:(%s)" % (item, ", ".join(["Country%s:%s" % (r+1, y) for r, y in enumerate(mainDict[item])]))

プリントアウト:

Europe:(['Country1:Germany', 'Country2:France', 'Country3:Italy'])
Asia:(['Country1:India', 'Country2:China', 'Country3:Malaysia'])
于 2013-07-17T22:20:14.713 に答える