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

Python 如何最有效地检查列表中的唯一元素?,python,list,dictionary,performance,Python,List,Dictionary,Performance,假设我有一张清单 li = [{'q':'apple','code':'2B'}, {'q':'orange','code':'2A'}, {'q':'plum','code':'2A'}] 返回此列表中唯一“代码”计数的最有效方法是什么? 在这种情况下,唯一代码是2,因为只有2B和2A是唯一的 我可以将所有内容都放在一个列表中进行比较,但这真的有效吗?最有效的简单方法可能是创建一组代码,它将过滤掉唯一性,然后获得该集合中的元素数: count = len(set(d[

假设我有一张清单

li = [{'q':'apple','code':'2B'},
      {'q':'orange','code':'2A'},
      {'q':'plum','code':'2A'}]
返回此列表中唯一“代码”计数的最有效方法是什么? 在这种情况下,唯一代码是2,因为只有2B和2A是唯一的


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

最有效的简单方法可能是创建一组代码,它将过滤掉唯一性,然后获得该集合中的元素数:

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

和往常一样,我建议不要担心这种效率,除非你衡量了自己的表现,发现这是一个问题。在编写此类代码时,我通常只考虑代码的清晰性,只有当我分析并发现需要改进性能时,我才会回来收紧代码。

FWIW在Python中首次引入集合时,这对我来说是一个新奇的概念。我发现阅读集合背后的数学非常有用,它将所有集合联系在一起:为了获得某个组的唯一性,它总是O(n),因为您已经查看了每个元素,除非您有其他内部信息。所有这些的副本:。具体而言: