如何制作一组列表

2022-01-17 00:00:00 python list set

问题描述

我有一个这样的列表:

i = [[1, 2, 3], [2, 4, 5], [1, 2, 3], [2, 4, 5]]

我想获得一个包含唯一"列表(基于它们的元素)的列表,例如:

I would like to get a list containing "unique" lists (based on their elements) like:

o = [[1, 2, 3], [2, 4, 5]]

我不能使用 set() 因为列表中有不可散列的元素.相反,我正在这样做:

I cannot use set() as there are non-hashable elements in the list. Instead, I am doing this:

o = []
for e in i:
  if e not in o:
    o.append(e)

有更简单的方法吗?


解决方案

你可以创建一组元组,一组列表是不可能的,因为你提到了不可散列的元素.

You can create a set of tuples, a set of lists will not be possible because of non hashable elements as you mentioned.

>>> l = [[1, 2, 3], [2, 4, 5], [1, 2, 3], [2, 4, 5]]
>>> set(tuple(i) for i in l)
{(1, 2, 3), (2, 4, 5)}

相关文章