如何最有效地检查列表中的唯一元素?

时间:2010-04-02 22:43:29

标签: python list dictionary performance

假设我有一个列表

li = [{'q':'apple','code':'2B'},
      {'q':'orange','code':'2A'},
      {'q':'plum','code':'2A'}]

在此列表中返回唯一“代码”数量的最有效方法是什么? 在这种情况下,唯一代码为2,因为只有 2B 2A 是唯一的。

我可以将所有内容放在列表中进行比较,但这真的很有效吗?

1 个答案:

答案 0 :(得分:8)

最有效的简单方法可能是创建一组代码,这些代码将过滤掉唯一身份,然后获取该集合中的元素数量:

count = len(set(d["code"] for d in li))

与往常一样,我建议不要担心这种效率,除非你已经衡量了你的表现并发现它是一个问题。我通常只考虑编写这种代码时的代码清晰度,然后只有在我进行了分析并发现我需要来提高性能时才回过头来收紧它。