学习之高阶编程的内置函数

“”"
filter函数:过滤器
参数1:过滤规则函数
参数2:可迭代对象
“”"

def test_filer():
    """
    需求: 获取列表中大于30的数据
    li = [11, 34, 7, 66, 5, 234, 55, 6]
    :return:
    """
    li = [11, 34, 7, 66, 5, 234, 55, 6]

    li1 = [i for i in li if i > 30]
    res1 = filter(lambda x: x > 30, li)
    print(list(res1))
    return li1

“”"
map函数:将函数应用于iterable中的每一项并输出其结果
参数1:处理函数
参数2:可迭代对象
需求:计算列表中所有数据的二次方法
“”"

def test_map():
    li = [11, 34, 7, 66, 5, 234, 55, 6]
    res = [i*i for i in li]
    li1 = map(lambda x: x ** 2, li)
    return list(li1), res

能使用filter与map的基本上都能使用列表推导式

“”"
exec:执行python代码
需求:字符串中的python代码如何执行
“”"

def test_exec():
    """
    动态执行python字符串代码
    :return:
    """
    code = """
a=100
b=200
print(a+b)    
"""
    exec(code)

all 迭代对象内所有的元素为真,返回True,只要有一个为false那返回的就是false

def test_all():
    return all([1, 2, 12])

any 迭代对象内只要有一个元素为真,返回true

def test_any():
    return any([0, 1, 2])

“”"
zip函数:聚合打包
a.返回一个zip对象
b.它是元组的迭代器,其中每个传递的迭代器中的第一项配对在一起,然后每个传递的迭代器中的第二项配对在一起等
c.如果传递的迭代器具有不同的长度,则具有最少项的迭代器决定迭代器的长度
d.如果我们不传递任何参数,zip()返回一个空迭代器
e.如果传递单个可迭代对象,则zip()返回一个元组迭代器,每个元组只有一个元素
“”"

def test_zip():
    s1 = (1, 2, 3, 4, 5)
    s2 = ("hello", "world", "a", "b", "c", "d")
    s3 = (11, 22, 33)
    s4 = (12, 44, 55, 66)
    res = zip(s1, s2)
    val1 = list(res)  # 嵌套二元元组的列表能够转化为字典
    val2 = dict(val1)
    val3 = zip(s1, s2, s3, s4)
    val4 = zip(s1)


def test_zip_dict():
    case1 = [
        ["case_id", "case_title", "url", "data", "except"],
        ["1", "用例1", "http://www.baidu.com", "001", "ok"],
        ["2", "用例2", "http://www.baidu.com", "001", "ok"],
        ["3", "用例3", "http://www.baidu.com", "001", "ok"],
        ["4", "用例4", "http://www.baidu.com", "001", "ok"],
        ["5", "用例5", "http://www.baidu.com", "001", "ok"]
    ]
    head_list = case1[0]
    body_list = case1[1:]
    res = [dict(zip(head_list, case)) for case in body_list]
    return res


if __name__ == '__main__':
    print(test_filer())
    print(test_map())
    test_exec()  # 会直接打印结果,如果加一层print会返回一个None
    print(test_all())
    print(test_any())
    test_zip()
    test_zip_dict()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值