当前位置:网站首页>集合与函数

集合与函数

2022-08-09 09:47:00 吴喜钟

一.集合

1.集合的特点

1.集合中元素只能存储不可变对象
2.集合中的元素是无序的
3.集合中的元素不能重复,如果重复集合也将会将元素自动去重。

2.集合的表现形式

1.集合可用{a,b,c}来表示,注意该方法里面如果是空的将会变成是一个空的字典。
2.{}表示空的字典而不是表示空的集合。
3.空集合的表现形式:

set()

3.集合的使用

1.使用方法set()可以创建集合(注意:该方法小括号里只能传入可迭代的对象
2.创建空集合: set()

set()

3.可通过set()将序列和字典转换成集合

4.len():通过len()可获取集合中元素的个数

s = {
    }1,2,3,4,5,6}
print(len(s))

输出结果:

6

5.add()方法是向集合中添加元素

s = {
    1,2,3,4,5,6}
s.add(9)
print(s)

输出结果:

{
    1, 2, 3, 4, 5, 6, 9}

6.update():将一个集合中的元素添加到另一个集合中

s = {
    1,2,3,4,5,6}
s1 = {
    7,8,9,10,11}
s.update(s1)
print(s)
print(s1)

输出结果:

{
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
{
    7, 8, 9, 10, 11}

7.pop():随机删除集合中的一个元素,该方法有返回值

s = {
    1,2,3,4,5,6}
r = s.pop()
print(r)
print(s)

输出结果为:

1
{
    2, 3, 4, 5, 6}

8.remove():删除集合中指定的元素

s = {
    1, 2, 3, 4, 5, 6,'abc'}
s.remove('abc')
print(s)

输出结果:

{
    1, 2, 3, 4, 5, 6}

9.clear():清空集合

s = {
    1, 2, 3, 4, 5, 6,'abc'}
s.clear()

4.集合的运算

1.& 交集运算:求两个集合共有的部分,有返回值,返回值为一个新的集合

s = {
    1, 2, 3, 4, 5, 6,'abc'}
s1= {
    1, 2, 3, 4, 7,8,9,10}
r = s&s1
print(r)

输出结果:
{1, 2, 3, 4}

2.| 并集运算:求两个集合所有的元素,返回值为新的集合

s1= {
    1, 2, 3, 4, 7,8,9,10}
s = {
    1, 2, 3, 4, 5, 6,'abc'}
r = s|s1
print(r)

输出结果:

{
    1, 2, 3, 4, 5, 6, 'abc', 7, 8, 9, 10}

3.- 差集运算:返回值为集合

s1= {
    1, 2, 3, 4, 7,8,9,10}
s = {
    1, 2, 3, 4, 5, 6,'abc'}
r = s-s1
b = s1-s
print(r)
print(b)

输出结果:

{
    5, 6, 'abc'}
{
    8, 9, 10, 7}

4.^ 亦或集运算:两个集合不相交的部分

s1= {
    1, 2, 3, 4, 7,8,9,10}
s = {
    1, 2, 3, 4, 5, 6,'abc'}
r = s^s1
print(r)

输出结果:

{
    5, 6, 7, 8, 9, 10, 'abc'}

5.<= 检查一个集合是否是另一个集合的子集,运算结果为布尔值

s1= {
    1, 2, 3, 4, 7,8,9,10}
s = {
    1, 2, 3, 478910}
r = s<=s1
print(r)

输出结果:

True

6.< 检查一个集合是否是另一个集合的真子集

s1= {
    1, 2, 3, 4, 7,8,9,10}
s = {
    1, 2, 3, 4,7,8}
r = s<s1
print(r)

输出结果:

True

7.>=检查一个集合是否是另一个集合的超集

s1= {
    1, 2, 3, 4, 7,8,9,10}
s = {
    1, 2, 3, 4,7,8910}
r = s1>=s
print(r)

输出结果:

True

8.>检查一个集合是否是另一个集合的真超集

s1= {
    1, 2, 3, 4, 7,8,9,10}
s = {
    1, 2, 3, 4,7,8}
r = s1>s
print(r)

输出结果:

True

二.函数

1.函数的简介

1.函数是一个对象,函数用来保存一些可执行代码,并且在需要用到时可多次调用

2.函数的语法

def 函数名(形参1,形参2,形参3·····):
	代码块

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

3.函数中的代码在程序中不用立即执行,只有在调用函数后函数内部的代码才会执行

2.函数的参数

1.形参:形参(形式参数) 定义形参就相当于在函数内部声明了变量,但是并不是赋值

2.实参(实际参数)指定了形参,那么在调用函数时必须传递实参,实参将会赋值给对应的形参,简单来说有几个形参就要有几个实参

3.函数的传递方式
定义形参时,可以为形参指定默认值。指定了默认值以后,如果用户传递了参数则默认值不会生效。如果用户没有传递,则默认值就会生效

位置参数:位置参数就是将对应位置的实参赋值给对应位置的形参

关键字参数 : 关键字参数可以不按照形参定义的顺序去传递,而根据参数名进行传递

混合使用位置参数和关键字参数的时候必须将位置参数写到关键字参数前面去

3.不定长参数

1.定义函数时,可以在形参前面加一个*,这样这个形参可以获取到所有的实参,它会将所有的实参保存到一个元组中

2.带*号的形参只能有一个,可以和其他参数配合使用

3.*形参只能接受位置参数,不能接受关键字参数,*形参如果不是放在最后,则后面的形参必须用关键字指定。

def fn(b,*c):
    print(b)
    print(c)
fn(1,4,6,7,8)

输出结果:

1
(4, 6, 7, 8)

4.**形参可以接收其他的关键字参数,它会将这些参数统一保存到字典当中。字典的key就是参数的名字,字典的value就是参数的值

5.**形参只有一个,并且必须写在所有参数的后面

4.参数的解包

1.传递实参时,也可以在序列类型的参数前添加星号,这样它会自动的将序列中元素依次作为参数传递

2.要求序列中的元素的个数必须和形参的个数一致

def fn(a,b,c,d):
    return a+b+c+d
r = (1,2,3,4)
j = fn(*r)
print(j)

输出结果:

10

**形参的解包

def fn(a,b,c):
    print('a=',a)
    print('b=',b)
    print('c=',c)
d = {
    'a':'葫芦娃','b':18,'c':'female'}
fn(**d)

输出结果:

a= 葫芦娃
b= 18
c= female

原网站

版权声明
本文为[吴喜钟]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_49383182/article/details/108511597