1. 集合(set)
Python中的集合(set)是一种无序的数据类型,集合中的成员是唯一的,不允许出现重复的数据。和其他编程语言一样,Python也有关于集合的常见操作方法。
1.1 集合的创建
集合可以通过两种方式来创建:
# 直接将一堆元素放在花括号中
set1 = {1, 2, 3, 4, 5}
print(set1)
# 使用set函数创建
set2 = set([1, 2, 3, 4, 5])
print(set2)
注意:创建一个空集合只能使用set()函数,因为{}表示的是一个空字典。
1.2 集合的方法
下面介绍集合(set)常用的方法
1.2.1 集合的添加和删除
添加元素可以使用add()方法,而删除可以使用remove()或者discard()方法(两者的区别在于,remove()方法在删除不存在的元素时会引发异常,而discard()则不会)
set1 = {1, 2, 3, 4, 5}
set1.add(6)
print(set1)
set1.remove(6)
print(set1)
set1.discard(7)
print(set1)
输出:
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}
1.2.2 集合的操作
集合的操作有并集、交集和差集。在Python中,可以使用union()、intersection()和difference()方法来实现这些操作。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 并集
print(set1.union(set2))
# 交集
print(set1.intersection(set2))
# 差集
print(set1.difference(set2))
输出:
{1, 2, 3, 4, 5, 6, 7, 8}
{4, 5}
{1, 2, 3}
1.2.3 集合的判断和求子集
Python的集合提供了issubset()和issuperset()两个方法来判断子集和超集的关系。
set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}
# 判断set1是否是set2的子集
print(set1.issubset(set2))
# 判断set2是否是set1的超集
print(set2.issuperset(set1))
输出:
True
True
2. 函数(function)
函数是一段可以被重复使用的代码块,它可以使得代码更加模块化,提高代码的可读性和可维护性。与其他编程语言一样,Python也支持函数的定义和调用。
2.1 函数的基本语法
Python函数的基本语法如下:
def function_name(parameters):
# 函数体
return value
其中,function_name是函数的名称,parameters是函数的参数,可以是0个或多个。函数体由多行代码组成,用于执行特定的操作。最后,该函数可以返回一个值(或者不返回)。
2.2 函数的参数传递
Python的函数可以接受多种参数:
位置参数
默认参数
可变参数(*args)
关键字参数(**kwargs)
2.2.1 位置参数
位置参数是指函数定义时指定的参数,它们的值由函数调用时的参数值对应确定,参数的数量和参数的位置必须一一对应。例如:
def myfunc(a, b):
print(a)
print(b)
myfunc(1, 2)
输出:
1
2
2.2.2 默认参数
默认参数是一种不需要在函数调用时传递的参数,如果函数调用时缺少默认值,它的默认值就会生效。例如:
def myfunc(a, b=2):
print(a)
print(b)
myfunc(1)
输出:
1
2
2.2.3 可变参数
可变参数是指在函数定义时,不确定输入的参数数量,可以接受任意数量的参数。在Python中,可以通过*args实现这种参数的传递。例如:
def myfunc(*args):
for arg in args:
print(arg)
myfunc(1, 2, 3, 4, 5)
输出:
1
2
3
4
5
2.2.4 关键字参数
关键字参数是指可以通过键值对的方式传递参数,通常用于需要传递多个参数时。在Python中,可以通过**kwargs实现这种参数的传递。例如:
def myfunc(**kwargs):
for key, value in kwargs.items():
print(key, value)
myfunc(name='Tom', age=18, gender='male')
输出:
name Tom
age 18
gender male
2.3 匿名函数(lambda)
Python支持一种简化版的函数定义方式,称为匿名函数。匿名函数可以通过lambda表达式来定义,它们通常用在函数体很短的情况下。例如:
multiply = lambda x, y: x * y
print(multiply(3, 5))
输出:
15
2.4 递归函数
在程序中,有一些问题可以通过调用自身来解决,这被称为递归。例如,计算一个数的阶乘就可以通过递归来实现。
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
print(factorial(4))
输出:
24
3. 小结
本文主要介绍了Python集合和函数的基本知识。集合(set)是一种无序的数据类型,它的成员是唯一的,不允许出现重复的数据。函数是一段可以被重复使用的代码块,它能够提高代码的可读性和可维护性。在函数的定义和调用中,Python提供了多种参数类型,包括位置参数、默认参数、可变参数和关键字参数。此外,Python还支持匿名函数和递归函数的定义。