Python | 数据类型之集合 | 函数

简介: Python | 数据类型之集合 | 函数

4610074d7c47490282d313e3764ab160.jpg


一、集合简介


1.1 集合的定义


集合(set)是一个无序的不重复元素序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而

不是 { },因为 { } 是用来创建一个空字典。

dict1 = {}  # 创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
print(type(dict1))  # dict
set1 = set()
print(type(set1))  # set


1bdd9384ebc84937a71b6d1b7154c9a2.png

1.2 实例

set2 = {"a", "b", "c", "b", "e"}
print(set2)  # 去重功能
print("a" in set2)  # 判断元素是否在集合内
a = set('abrcd')
b = set('alczm')
# a-b 集合a中包含而集合b中不包含的元素 <=>a-a&b
print(a - b)
# a|b 集合a或b中包含的所有元素
print(a | b)
# a&b 集合a和b中都包含了的元素
print(a & b)
# a^b 不同时包含于a和b的元素 <=> a-b | b-a
print(a ^ b)
print(a - b | b - a)

fff6a27761144a4d9bacbeaae8855a33.png


二、集合的基本操作

2ffdcd48fcf54ad190b4e860feefeda8.png


298f10116b9e47e3a2661a53fa71d26e.png

# 1.difference() a-b 不改变原集合
set1 = {"a","b","c"}
set2 = {"c","d","e"}
print(set1.difference(set2))
# 2.difference_update()  改变原集合
# difference() 方法返回一个移除相同元素的新集合,而 difference_update() 方法是直接在原来的集合中移除元素
set1.difference_update(set2)
print(set1)
# 3.intersection()
set3 = {1,2,3}
set4 = {3,4,5}
print(set3.intersection(set4))
# 4.intersection_update()
# intersection() 方法是返回一个新的集合,而 intersection_update() 方法是在原始的集合上移除不重叠的元素
set3.intersection_update(set4)
print(set3)

986510b7ec3446639fc09a0410874d7f.png


9b2e62501ea349d2922c2d996e370778.png


三、函数


3.1 函数的定义


函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。

Python 定义函数使用 def 关键字,一般格式如下:


def 函数名(参数列表):
    函数体
    return


Python中的函数与其他语言中的函数用法基本相同,这里不过多介绍。

需要注意的是,Python中的函数可以有多个返回值,请看下面的例题:

# 有多个返回值的函数
def getDate():
    year = 2023
    mouth = 2
    return year, mouth
# 接收函数值也要使用两个变量
year, mouth = getDate()
print("year is %d,mouth is %d" % (year, mouth))
# 如果使用1个变量接收,接收到的就是元组
year = getDate()
print("year is %s and type is %s" % (str(year), type(year)))


be992bd817164c4f92e99e1ad8911f9f.png


3.2 函数的调用

函数可以直接调用,也可以嵌套调用。

def line():
    print("-" * 40)
line()  # 直接调用
def defineLine():
    number = int(input("Please input a number for times:\n"))
    i = 0
    while i < number:
        line()  # 嵌套调用
        i += 1


e256a71228e54ccf9463867f7eb4dc03.png

3.3 全局变量和局部变量


全局变量 局部变量
定义 定义在函数外的变量 定义在函数内的变量
作用范围 整个Python文件有效 函数内有效
冲突 当全局变量和局部变量重名时,使用的是局部变量 如果要使用全局变量,要使用global关键字声明


请看下面的例题:

a = 100
def getNum():
    a = 200 # 当全局变量和局部变量重名时,使用的是局部变量
    print("a=%d"%a)
def getNum2():
    global a
    a = 500 # 如果要使用全局变量,要使用global关键字声明
    print("a=%d"%a)
getNum()
getNum2()
print(a)


345885e4b215450f8b42fcc3df8d2c9d.png

这篇文章主要介绍了Python中的集合(set)数据类型,以及函数的定义和调用!今

日份的分享就到这里,我们下期再见,拜拜!

5d57518ccb18444eb309d816eedcd870.gif


相关文章
|
2月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
148 67
|
14天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
26 3
|
18天前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
28 2
|
3天前
|
存储 人工智能 Python
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
7 0
|
1月前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
57 18
|
1月前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
73 8
|
1月前
|
Python
Python中的函数
Python中的函数
51 8
|
1月前
|
Python
Python 中一些常见的数据类型
Python 中一些常见的数据类型
153 8
|
2月前
|
Python
Python中不同数据类型之间如何进行转换?
Python中不同数据类型之间如何进行转换?
36 6
|
2月前
|
监控 测试技术 数据库
Python中的装饰器:解锁函数增强的魔法####
本文深入探讨了Python语言中一个既强大又灵活的特性——装饰器(Decorator),它以一种优雅的方式实现了函数功能的扩展与增强。不同于传统的代码复用机制,装饰器通过高阶函数的形式,为开发者提供了在不修改原函数源代码的前提下,动态添加新功能的能力。我们将从装饰器的基本概念入手,逐步解析其工作原理,并通过一系列实例展示如何利用装饰器进行日志记录、性能测试、事务处理等常见任务,最终揭示装饰器在提升代码可读性、维护性和功能性方面的独特价值。 ####