2016-09-24 173 views
1

我有列表下面的列表:如何將列表的列表轉換爲Python中的字典?

website=[["Ram"],["google"],["yahoo"],["linkedin"],["facebook"],["twitter"], 
    ["google"],["yahoo"],["linkedin"],["facebook"],["twitter"],["google"],["yahoo"], 
    ["linkedin"]] 

我想獲得像輸出:

webdict={"Ram":1,"google":3,"yahoo":3,"linkedin":3,"facebook":2,"twitter":2} 
+0

感謝大家解決我的問題。我是Python的新手。我希望你們也能在未來幫助我的節目。 –

回答

0
website=[["Ram"],["google"],["yahoo"],["linkedin"],["facebook"],["twitter"],["google"],["yahoo"],["linkedin"],["facebook"],["twitter"],["google"],["yahoo"],["linkedin"]] 

print dict([(i[0], website.count(i)) for i in website]) 

輸出:

{'google': 3, 'twitter': 2, 'Ram': 1, 'yahoo': 3, 'linkedin': 3, 'facebook': 2} 

要了解更多關於列表請參見doc

  • 「5.1.4。列表理解「將解釋for聲明。
  • 」5.1。更多關於列表」將解釋website.count(i)
0

有一個叫Counter一流,這是專爲這樣的任務,它從字典中繼承,所以只需填寫的項目,然後打印出結果

website=[["Ram"],["google"],["yahoo"],["linkedin"],["facebook"],["twitter"],["google"],["yahoo"],["linkedin"],["facebook"],["twitter"],["google"],["yahoo"],["linkedin"]] 

from collections import Counter 
c = Counter() 
for item in website: 
    c[item[0]] += 1 

print c 
>>> Counter({'google': 3, 'yahoo': 3, 'linkedin': 3, 'twitter': 2, 'facebook': 2, 'Ram': 1}) 
0

由於要計的元素,最簡單的方法是使用從collections.Counter標準庫。參數到Counter是發電機表達它檢索對每個列表的第一(只)元素website列表。

from collections import Counter 
website = [["Ram"],["google"],["yahoo"],["linkedin"],["facebook"],["twitter"],["google"],["yahoo"],["linkedin"],["facebook"],["twitter"],["google"],["yahoo"],["linkedin"]] 
counter = Counter(o[0] for o in website) 
# Counter({'google': 3, 'yahoo': 3, 'linkedin': 3, 'twitter': 2, 'facebook': 2, 'Ram': 1}) 
相關問題