如何在Python中将列表列表转换为字典?

时间:2016-09-24 07:26:01

标签: python-2.7

我有以下列表清单:

x

我希望获得如下输出:

atleast_2d

3 个答案:

答案 0 :(得分: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

  • Section" 5.1.4。列表理解"将解释for声明。
  • Section" 5.1。更多关于列表"将解释website.count(i)

答案 1 :(得分: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})

答案 2 :(得分:0)

由于您想要计算元素,最简单的方法是使用标准库中的Counterwebsite的参数是一个生成器表达式,它为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}) 列表中的每个列表检索第一个(唯一)元素。

    Element elt = Jsoup.parse(elementToBeCloned).body().child(0);
    elt.ownedDocument().outputSettings(elementToBeCloned.ownedDocument().outputSettings().clone());