每天一篇博客,心情美美哒_

Python 快速判断重复值的方法

在 Python 中,可以使用 集合(Set) 来快速判断列表中的重复值。集合是一种无序且元素唯一的数据结构,利用它的互异性可以轻松剔除列表中的重复值。

核心方法

unique_elements = set(list)
  • 功能:将列表转换为集合,自动剔除重复值。
  • 返回值:一个包含唯一元素的集合。

判断重复值数量

通过比较列表长度和集合长度,可以判断重复值的数量:

if len(list) == len(set(list)):
    print("列表中没有重复值")
else:
    print(f"列表中有 {len(list) - len(set(list))} 个重复值")

实战:判断三角形相等边的数量

在几何中,三角形的类型可以根据边的相等数量来分类:

  1. 等边三角形:三条边都相等。
  2. 等腰三角形:至少两条边相等。
  3. 不等边三角形:三条边都不相等。

利用 Python 的集合特性,可以快速判断三角形边的相等数量。

实现代码

def count_equal_sides(sides):
    """判断三角形相等边的数量。
    
    :param sides: 包含三个边长的列表
    :return: 相等边的数量(2 表示等腰,3 表示等边,1 表示不等边)
    """
    unique_sides = set(sides)  # 转换为集合,剔除重复值
    return len(unique_sides)  # 返回唯一值的数量

分类函数

def is_equilateral(sides):
    """判断是否为等边三角形。
    
    :param sides: 包含三个边长的列表
    :return: 如果是等边三角形返回True,否则返回False
    """
    return count_equal_sides(sides) == 1  # 唯一值数量为1


def is_isosceles(sides):
    """判断是否为等腰三角形。
    
    :param sides: 包含三个边长的列表
    :return: 如果是等腰三角形返回True,否则返回False
    """
    return count_equal_sides(sides) <= 2  # 唯一值数量为1或2


def is_scalene(sides):
    """判断是否为不等边三角形。
    
    :param sides: 包含三个边长的列表
    :return: 如果是不等边三角形返回True,否则返回False
    """
    return count_equal_sides(sides) == 3  # 唯一值数量为3

希望这篇博客对你有所帮助!如果有其他问题,欢迎随时交流! 😊