当前位置: 首页 > news >正文

Python基础入门掌握(八)

集合应用

集合(set)是一种非常有用的数据结构,它用于存储不重复的元素。集合支持数学上的集合操作,如并集、交集和差集等,这使得它们在处理唯一性问题时特别有用。无论是去重、成员检查还是进行集合运算,集合都能提供简洁而高效的解决方案。本文将详细介绍如何使用集合

第一部分:介绍

集合是Python中的一种无序且不重复的元素集合。基本特性包括:

无序性:集合中的元素没有固定的顺序。

唯一性:集合中的每个元素都是唯一的,不允许重复。

可变性:集合是可变的,可以动态添加或删除元素。

集合的基本定义方式如下:

my_set = {1, 2, 3}

也可以通过set()函数从其他序列类型(如列表或元组)创建集合。

第二部分:使用场景与示例

示例 1: 基本集合定义及打印

# 定义一个简单的集合fruits = {"苹果", "香蕉", "橙子"}# 打印整个集合print("水果集合:", fruits)使用场景: 存储一组唯一的项目,如用户的兴趣标签。

示例 2: 添加元素到集合

# 向集合中添加新元素fruits.add("草莓")# 打印更新后的集合print("更新后的水果集合:", fruits)使用场景: 动态收集额外的信息,如用户注册后逐步完善个人资料。

示例 3: 删除集合中的元素​​​​​​​

# 从集合中移除指定元素fruits.remove("香蕉")# 打印更新后的集合print("移除香蕉后的水果集合:", fruits)使用场景: 清理过时或不需要的数据,如从用户档案中删除不再适用的信息。

示例 4: 集合的并集操作​​​​​​​

# 定义两个集合set1 = {"苹果", "香蕉", "橙子"}set2 = {"草莓", "蓝莓", "橙子"}# 计算两个集合的并集union_set = set1.union(set2)# 打印并集结果print("两个集合的并集:", union_set)使用场景: 合并来自不同来源的数据,如整合多个API响应的结果。

示例 5: 集合的交集操作​​​​​​​

# 计算两个集合的交集intersection_set = set1.intersection(set2)# 打印交集结果print("两个集合的交集:", intersection_set)使用场景: 查找两个数据集之间的共同元素,如找出同时喜欢两种水果的用户。

示例 6: 集合的差集操作​​​​​​​

# 计算第一个集合相对于第二个集合的差集difference_set = set1.difference(set2)# 打印差集结果print("第一个集合相对于第二个集合的差集:", difference_set)使用场景: 筛选出属于某一集合但不属于另一集合的元素,如查找只喜欢一种水果的用户。

示例 7: 检查集合是否为另一个集合的子集​​​​​​​

# 检查一个集合是否为另一个集合的子集is_subset = set1.issubset(set2)# 打印检查结果print("set1 是否为 set2 的子集:", is_subset)使用场景: 确认某个数据集是否完全包含于另一个数据集中,如验证权限设置。

示例 8: 使用集合去重​​​​​​​

# 定义一个包含重复元素的列表numbers = [1, 2, 2, 3, 4, 4, 5]# 使用集合去重unique_numbers = set(numbers)# 打印去重后的集合print("去重后的数字集合:", unique_numbers)使用场景: 快速去除列表中的重复元素,如清理用户输入数据。

示例 9: 遍历集合元素​​​​​​​

# 遍历并打印集合中的所有元素for fruit in fruits:        print(fruit)使用场景: 处理批量数据,如显示一组相关联的信息。

示例 10: 使用集合进行条件过滤​​​​​​​

# 定义一个包含多个字符串的列表words = ["apple", "banana", "orange", "strawberry"]# 使用集合过滤掉长度小于6的单词filtered_words = {word for word in words if len(word) >= 6}# 打印过滤后的集合print("过滤后的单词集合:", filtered_words)使用场景: 从大量数据中筛选出符合条件的部分,如过滤掉无效的用户数据。

示例 11: 集合对称差集操作​​​​​​​

# 计算两个集合的对称差集symmetric_difference_set = set1.symmetric_difference(set2)# 打印对称差集结果print("两个集合的对称差集:", symmetric_difference_set)使用场景: 找出两个集合中独有的元素,如比较两个版本的产品差异。

函数定义

第一部分:介绍

函数是Python中的一种可重用代码块,它允许我们将一组相关的操作封装在一起,以便于调用和重复使用。基本语法如下:​​​​​​​

def function_name(parameters):    """文档字符串"""        # 函数体        return result​​​​​​​

def关键字用于定义一个新函数。

function_name是函数的名字。

parameters(参数)是传递给函数的值,可以为空。

return语句用于返回结果,也可以省略,此时函数默认返回None。

函数不仅有助于减少代码冗余,还能提高程序的模块化程度,便于调试和维护。

第二部分:使用场景与示例

示例 1: 基本函数定义及调用​​​​​​​

# 定义一个简单的函数来打印欢迎信息def welcome_message():        print("欢迎来到我们的网站!")# 调用函数welcome_message()使用场景: 提供用户反馈或提示信息,如登录成功后的欢迎消息。

示例 2: 带参数的函数​​​​​​​

# 定义一个带参数的函数来个性化欢迎信息def personalized_welcome(name):        print(f"欢迎你, {name}!")    # 调用函数并传入参数personalized_welcome("张三")使用场景: 根据用户输入动态生成内容,如定制化的问候语。

 

示例 3: 返回值的函数​​​​​​​

# 定义一个返回计算结果的函数def add_numbers(a, b):        return a + b    # 调用函数并接收返回值result = add_numbers(5, 3)print("两数之和:", result)使用场景: 执行数学运算或其他需要返回结果的操作,如计算器应用。

 

示例 4: 使用默认参数

# 定义一个带有默认参数的函数

def greet_user(name="访客"):

    print(f"你好, {name}!")

# 调用函数时可以不提供参数

greet_user()

greet_user("李四")

使用场景: 当某些参数具有常见值时,可以设置默认参数以简化调用,如配置文件中的默认设置。

示例 5: 可变数量的参数

# 定义一个接受任意数量参数的函数

def concatenate_strings(*args):

    return ''.join(args)

# 调用函数并传入多个参数

result = concatenate_strings("Hello", " ", "World")

print("连接后的字符串:", result)

使用场景: 处理不确定数量的数据,如合并多个文本片段。

示例 6: 关键字参数

# 定义一个接受关键字参数的函数

def describe_pet(animal_type, pet_name):

    print(f"我有一只{animal_type}, 它的名字叫{pet_name}.")

# 调用函数时指定参数名

describe_pet(animal_type="狗", pet_name="旺财")

使用场景: 当参数较多且容易混淆时,使用关键字参数可以使调用更加清晰,如API请求中的参数传递。

示例 7: 文档字符串

# 定义一个带有文档字符串的函数

def calculate_area(radius):

    """

    计算圆的面积

    参数:

        radius (float): 圆的半径

    返回:

        float: 圆的面积

    """

    import math

    return math.pi * radius ** 2

# 调用help查看文档字符串

help(calculate_area)

使用场景: 为函数添加注释,帮助其他开发者理解函数的功能和使用方法。

示例 8: 递归函数

# 定义一个递归函数来计算阶乘

def factorial(n):

    if n == 0:

        return 1

    else:

        return n * factorial(n - 1)

# 调用函数

result = factorial(5)

print("5的阶乘:", result)

使用场景: 解决需要反复调用自身的复杂问题,如树结构遍历或数学上的递归公式。

示例 9: 匿名函数(lambda)

# 使用lambda表达式定义匿名函数

double = lambda x: x * 2

# 调用匿名函数

result = double(5)

print("两倍值:", result)

使用场景: 创建简单的单行函数,尤其适用于临时性操作,如列表排序或过滤。

示例 10: 函数作为参数传递

# 定义一个接受函数作为参数的函数

def apply_function(func, value):

    return func(value)

# 调用函数并传入另一个函数作为参数

result = apply_function(lambda x: x ** 2, 4)

print("平方值:", result)

使用场景: 实现高阶函数,增强代码的灵活性和功能性,如回调函数或装饰器。

示例 11: 内部函数

# 定义一个包含内部函数的函数

def outer_function(x):

    def inner_function(y):

        return x + y

    return inner_function

# 调用外部函数并获取内部函数

inner = outer_function(3)

result = inner(2)

print("内部函数的结果:", result)

使用场景: 封装特定逻辑,避免全局命名空间污染,如封装辅助函数或闭包。

 

相关文章:

  • Netty 连接存活检测——如何判断连接是否断开?
  • 【设计模式】建造者模式
  • Linux系统中查询命令行解释器
  • leetcode 75.颜色分类(荷兰国旗问题)
  • 基于 Docker 搭建 FRP 内网穿透开源项目
  • 2023南京理工大学计算机复试上机真题
  • .npy文件介绍
  • 网络协议栈
  • 农资出入库登记本,农药化肥库存出入库软件,佳易王农资管理庄稼医院开单管理系统操作教程
  • Java字节码
  • C++类与对象——拷贝构造与运算符重载
  • 【论文阅读】AlexNet——深度学习奠基作之一
  • 笔记本 Win10 部署阿里通义千问 1.5-0.5B 大模型 mini 版
  • nvm安装node失败的处理方法
  • hevc视频编码-搜索窗口和快速搜索
  • Project回调函数qsort②进阶应用
  • C++学习之路,从0到精通的征途:类和对象(中)
  • gdal-linux-whl文件安装下载地址
  • 常用的Python库
  • 【时延】空口资源计算
  • 金科服务:大股东博裕资本提出无条件强制性现金要约收购,总代价约17.86亿港元
  • 黄仁勋访华期间表示希望继续与中国合作,贸促会回应
  • 香港警务处高级助理处长叶云龙升任警务处副处长(行动)
  • 民调显示特朗普执政百日支持率为80年来美历任总统最低
  • 利物浦提前四轮英超夺冠,顶级联赛冠军数追平曼联
  • 从“网点适老化”到“社区嵌入式”,“金融为老上海模式”如何探索?