1

Python dictを単一の文字列に変換する正しい方法は何ですか?

コード付きのサンプルプログラムがあります:

keywordsList = {u'roland.luethe1@gmail.com': 2, u'http://www.3ho.de/': 4, u'http://www.kundalini-yoga-zentrum-berlin.de/index.html': 1, u'ergo@ananda-pur.de': 3}

keywordsCount = sorted(keywordsList.items(),key=lambda(k,v):(v,k),reverse=True)

for words in keywordsCount:
    print words[0], " - count: ", words[1]

アイテムを並べ替えると、次のような結果が得られます。

http://www.3ho.de/  - count:  4
ergo@ananda-pur.de  - count:  3
roland.luethe1@gmail.com  - count:  2
http://www.kundalini-yoga-zentrum-berlin.de/index.html  - count:  1

そして、私の質問は、すべての dict のものを cout と組み合わせて、次のような出力に見える 1 つの文字列にまとめる正しい方法は何かということです。

'http://www.3ho.de/ : 4, ergo@ananda-pur.de : 3, roland.luethe1@gmail.com : 2, http://www.kundalini-yoga-zentrum-berlin.de/index.html : 1'

または似たようなものですが、論理的な方法で?

4

3 に答える 3

2

str.join()慎重に使用してください:

', '.join([' : '.join((k, str(keywordsList[k]))) for k in sorted(keywordsList, key=keywordsList. get, reverse=True)])

出力:

>>> ', '.join([' : '.join((k, str(keywordsList[k]))) for k in sorted(keywordsList, key=keywordsList. get, reverse=True)])
u'http://www.3ho.de/ : 4, ergo@ananda-pur.de : 3, roland.luethe1@gmail.com : 2, http://www.kundalini-yoga-zentrum-berlin.de/index.html : 1'

あなたは本当に調べてcollections.Counter()、そのようにソートしなければならないことを避けるべきです. このCounter.most_common()メソッドは、アイテムを頻度の逆順に並べ替えてリストします。

于 2013-08-14T13:08:14.963 に答える
0

正しい方法はわかりませんが、これを行うこともできます:

', '.join(' : '.join([a, str(b)]) for a, b in keywordsCount)
于 2013-08-14T13:08:06.420 に答える
0

シンプルな従来の方法を使用します。これは私にとってはうまくいきました

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
d=" " 
for  i in dict:
 a=i
 b=dict[i]
 c=i+":"+dict[i]
 d=d+c+'\n'

print d 
于 2014-07-22T07:25:48.997 に答える