Python 中检查列表中的所有元素是否唯一

Python 中检查列表中的所有元素是否唯一:

  1. 使用 set() 类将列表转换为集合。
  2. 检查列表的长度是否等于集合的长度。
  3. 如果满足条件,则列表中的所有元素都是唯一的。
my_list = ['one', 'two', 'three']

# ✅ 检查列表中的所有元素是否都是唯一的
if len(my_list) == len(set(my_list)):
    # 👇️ this runs
    print('✅ All elements in the list are unique')
else:
    print('✅ Not all elements in the list are unique')

# ✅ 检查列表是否包含重复项
if len(my_list) > len(set(my_list)):
    print('✅ The list contains duplicates')
else:
    # 👇️ this runs
    print('✅ All elements in the list are unique')

Python 中检查列表中的所有元素是否唯一

我们使用 set() 类将列表转换为集合对象。

集合对象是唯一元素的无序集合,因此当列表转换为集合时,任何重复项都会被删除。

print(set(['one', 'one', 'one']))  # 👉️ {'one'}

print(set(['one', 'two', 'three']))  # 👉️ {'three', 'one', 'two'}

如果列表的长度等于集合的长度,则该列表不包含任何重复项并且其所有项目都是唯一的。

如果我们需要检查列表是否包含重复项,请检查列表的长度是否大于转换为集合对象的列表的长度。

my_list = ['one', 'one', 'two', 'three']

print(set(my_list))  # 👉️ {'one', 'two', 'three'}

if len(my_list) > len(set(my_list)):
    print('The list contains duplicates')
else:
    # 👇️ this runs
    print('All elements in the list are unique')

将列表转换为集合会删除任何重复项,因此如果列表包含重复项,它的长度将大于集合。

或者,我们可以使用 for 循环。

检查列表中的所有元素是否唯一:

  1. 初始化一个空集。
  2. 使用 for 循环遍历列表。
  3. 检查每个项目是否包含在集合中
  4. 如果该项目包含在集合中,则跳出循环,否则将项目添加到集合中。
def only_unique_elements(lst):
    set_obj = set()

    for item in lst:
        if item in set_obj:
            return False

        set_obj.add(item)

    return True


print(only_unique_elements(['one', 'two']))  # 👉️ True
print(only_unique_elements(['one', 'one']))  # 👉️ False

我们声明了一个变量并将其设置为一个空集合对象。

如果当前迭代的项目在集合中,我们从函数返回 False。如果该项目不在集合中,我们将其添加到集合中并继续下一次迭代。如果 for 循环遍历整个列表而不返回 False,则列表中的所有项目都是唯一的,我们从函数返回 True。