python基础学习笔记06——拆包 交换变量 数据类型 lambda表达式 高阶函数

1. 拆包

元组:

def func(a,b):
    return a,b
num1 , num2 = func(10,20)

字典:

dict1 = {
    
    '姓名':'Ray','年龄':18}
key1 , key2 =dict1
print(key1)
print(key2)		# 拆包得到的是key值
print(dict1[key1])
print(dict1[key2])
# 姓名
# 年龄
# Ray
# 18

2. 交换变量

a = 10
b = 20
a,b = b,a

3. 数据类型

数据能够直接进行修改,如果能则是可变类型,如果不行则是不可变类型
可变类型:列表 字典 集合
不可变类型:整型 浮点型 字符串 元组

4. lambda表达式

如果一个函数有一个返回值,并且只有一句代码,可以使用lambda简化
语法:函数名 = lambda 参数列表:表达式
注意:
lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用
lambda表达式能接受任何数量的参数但是只能返回一个表达式的值

fn1 = lambda a,b,c=100:a+b+c    # 默认参数
fn2 = lambda *args : args       # 可变参数
fn3 = lambda **kwargs : kwargs  # 可变参数
func = lambda a,b : a if a>b else b		# 带判断的表达式

字典数据排序:

students = [
    {
    
    'name':'Tom','age':20},
    {
    
    'name':'Jerry','age':22},
    {
    
    'name':'Ray','age':24}
]
students.sort(key = lambda s:s['name'])     # 按姓名升序
students.sort(key = lambda s:s['name'],reverse = True)     # 按姓名降序

5. 高阶函数

某个函数作为另一个函数的参数传入

def add_num(a,b,f):
    return f(a)+f(b)
print(add_num(10,-2,abs))

6. 内置高阶函数

6.1 map()
map(func,lst),将传入的函数变量func作用到lst变量的每个元素中,并将结果组成新的列表

list1 = [1,2,3,4,5]
def func(x):
    return x**2
result = map(func,list1)
print(list(result))     # 需要将数据类型转化为list

6.2 reduce()
reduce(func,lst),其中func必须有两个参数。每次func计算的结果继续和序列的下一个元素做累计计算
注意:reduc()传入的参数func必须接收两个参数

import functools
list1 = [1,2,3,4,5]
def func(a,b):
    return a+b
result = functools.reduce(func,list1)
print(result)   # 15

6.3 filter()
filter(func,lst)函数用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象

list1 = [1,2,3,4,5]
def func(x):
    return x%2 == 0
result = filter(func,list1)
print(list(result))

猜你喜欢

转载自blog.csdn.net/qq_44708714/article/details/105027277
今日推荐