簡體   English   中英

Python字典到字符串

[英]Python dict to string

在單個字符串中轉換Python字典的正確方法是什么?

我有帶有代碼的示例程序:

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組合在一個看起來像打印出來的字符串中的正確方法是什么:

'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'

或類似但以邏輯方式?

明智地使用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()方法為您列出了按頻率反向排列的項目。

我不確定正確的方法,但您也可以這樣做:

', '.join(' : '.join([a, str(b)]) for a, b in keywordsCount)

使用簡單的常規方法。這對我有用

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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM