Python集合与函数

1.集合

1.1 集合简介

  • 集合表现形式set 集合和列表非常相似
    不同点
    • 集合只能存储不可变对象
    • 集合中存储的对象是无序的
    • 集合不能出现重复元素
  • 使用{}来创建集合
  • 可以通过set()来将序列和字典转换成集合
  • len() 使用len()来获取集合中元素的数量
  • add()像集合中添加元素
  • update()将一个集合中的元素添加到另一个集合当中
  • pop()随机删除集合中的一个元素一般是删除最后一个元素
  • remove() 删除集合中指定的元素
  • clear() 清空集合
# set()函数可以创建集合
# 可以通过set()函数将序列转换为集合
s = set([1,2,3,4,2,2,3,1])
s = set('python')
s = set({'a':1,'b':2}) # 使用set()函数将字典转换为集合时,只包含字典的keys(键)
#
print(s,type(s))

# 创建一个集合
s = {'a','b',1,2,3}
print(s,type(s))
print(s[0]) # TypeError: 'set' object does not support indexing
print(list(s)[0])

1.2 集合的使用

# 创建一个集合
s = {'a','b',1,2,3}
# in 和 not in来检查集合中的元素
print('b' in s)
# len() 获取集合的长度或者元素的数量
print(len(s))
#
# add() 向集合中添加元素
s.add(20)
s.add(50)
#
# update() 将一个集合中的元素添加到当前的集合中
s2 = set('hello')
s.update(s2)
#
#  pop() 随机删除集合中的一个元素 返回值(删除的元素)
{1, 2, 3, 'b', 'l', 50, 'e', 20, 'h', 'a', 'o'}
result = s.pop()
print(result)
#
# remove() 删除集合中指定的元素
s.remove(20)
#
# clear() 清空集合
s.clear()
print(s)

1.3 集合的运算

& 交集运算
| 并集运算
差集运算
^ 亦或集
<= 检查一个集合是否是另一个集合的子集
< 检查一个集合是否是另一个集合的真子集
>=检查一个集合是否是另一个集合的超集
>检查一个集合是否是另一个集合的真超集

2. 函数简介

  • 函数也是一个对象
  • 函数用来保存一些可执行的代码,并且可以在需要时,对这些语句进行多次调用
语法
def 函数名([形参1,形参2,形参3....]):
    代码块

注意:
函数名必须符合标识符的规范(可以包含字母、数字、下划线但是不能以数字开头)
print是函数对象 print()是调用函数

# 定义一个函数
# 函数中保存的代码不会立即执行,需要调用函数代码才会执行
def fn():
    print('hahah')
    print('heiheihei')
    print('hello')
print(fn)
print print()

# fn()
# fn()
# fn是函数对象 fn()调用函数

3. 函数的参数

3.1 形参和实参

  • 形参(形式参数) 定义形参就相当于在函数内部声明了变量,但是并不是赋值
  • 实参(实际参数)指定了形参,那么在调用函数时必须传递实参,实参将会赋值给对应的形参,简单来说有几个形参就要有几个实参

3.2 函数的传递方式

  • 定义形参时,可以为形参指定默认值。指定了默认值以后,如果用户传递了参数则默认值不会生效。如果用户没有传递,则默认值就会生效
  • 位置参数:位置参数就是将对应位置的实参赋值给对应位置的形参
  • 关键字参数 : 关键字参数可以不按照形参定义的顺序去传递,而根据参数名进行传递
  • 混合使用位置参数和关键字参数的时候必须将位置参数写到关键字参数前面去
# 定义形参时,可以为形参指定默认值
# 指定了默认值以后,如果用户传递了参数默认值不会生效
# 如果用户没有传递参数,默认值则生效
def fn(a = 5,b =10,c=20):
    print('a =',a)
    print('b =',b)
    print('c =',c)
fn(1,2)
fn(1,2,3)
fn(b=1,c=2,a=3)
# 位置参数和关键字参数可以混合使用
fn(2,c=50)
fn(c=60,1) # SyntaxError: positional argument follows keyword argument
import requests
headers = {}
response = requests.get(headers=headers,'xxxxxx')

4. 不定长参数

  • 定义函数时,可以在形参前面加一个*,这样这个形参可以获取到所有的实参,它会将所有的实参保存到一个元组中
  • 带*号的形参只能有一个,可以和其他参数配合使用
  • 形参只能接受位置参数,不能接受关键字参数
  • 形参可以接收其他的关键字参数,它会将这些参数统一保存到字典当中。字典的key就是参数的名字,字典的value就是参数的值
  • 形参只有一个,并且必须写在所有参数的后面
# *a 处理的是位置参数 **a 是处理的是关键字参数
def fn3(**a):
    print('a =', a)
fn3(b=2,d=1,c=3)

5. 参数的解包

  • 传递实参时,也可以在序列类型的参数前添加星号,这样它会自动的将序列中元素依次作为参数传递
  • 要求序列中的元素的个数必须和形参的个数一致
def fn(a,b,c):
    print('a =', a)
    print('b =', b)
    print('c =', c)

# 创建一个元组
t = (20,30,40,50)
# 传递实参时候,也可以在序列类型的参数前面添加*号,这样它会自动的将序列三种的元素依次作为参数传递

# 创建一个字典
# 可以通过**来对字典进行解包
d = {'a':1,'b':2,'c':3}
fn(**d)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python提供了丰富的集合函数,以下是其中一些常用的函数: 1. 创建集合 使用`set()`函数可以创建一个空集合,也可以将其他序列类型转换为集合类型。 ```python # 创建空集合 set1 = set() print(set1) # 输出:set() # 将列表转换为集合 list1 = [1, 2, 3, 4, 5] set2 = set(list1) print(set2) # 输出:{1, 2, 3, 4, 5} ``` 2. 添加元素 使用`add()`方法可以向集合中添加一个元素,使用`update()`方法可以向集合中添加多个元素。 ```python set1 = {1, 2, 3} set1.add(4) print(set1) # 输出:{1, 2, 3, 4} set1.update([5, 6, 7]) print(set1) # 输出:{1, 2, 3, 4, 5, 6, 7} ``` 3. 删除元素 使用`remove()`方法可以删除集合中的一个元素,如果元素不存在则会抛出异常。使用`discard()`方法也可以删除集合中的一个元素,但如果元素不存在则不会抛出异常。 ```python set1 = {1, 2, 3, 4, 5} set1.remove(3) print(set1) # 输出:{1, 2, 4, 5} set1.discard(4) print(set1) # 输出:{1, 2, 5} ``` 4. 集合运算 Python提供了多种集合运算,包括并集、交集、差集等。 ```python set1 = {1, 2, 3} set2 = {3, 4, 5} # 并集 set3 = set1.union(set2) print(set3) # 输出:{1, 2, 3, 4, 5} # 交集 set4 = set1.intersection(set2) print(set4) # 输出:{3} # 差集 set5 = set1.difference(set2) print(set5) # 输出:{1, 2} ``` 5. 判断是否有交集 使用`isdisjoint()`方法可以判断两个集合是否有交集,如果没有交集则返回True,否则返回False。 ```python set1 = {1, 2, 3} set2 = {4, 5, 6} set3 = {3, 4, 5} print(set1.isdisjoint(set2)) # 输出:True print(set1.isdisjoint(set3)) # 输出:False ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值