• 03-迭代器生成器


    #!/usr/bin/env python
    # encoding: utf-8
    """
    @author: 拾壹
    @software: PyCharm
    @file: 03-迭代器生成器.py
    @time: 2022/11/2 23:16
    """
    """
    1、现在有一个列表 li = [11,21,4,55,6,67,123,54,66,9,90,56,34,22],
    请将 大于5的数据过滤出来,然后除以2取余数,结果放到一个生成器中
    """
    li = [11, 21, 4, 55, 6, 67, 123, 54, 66, 9, 90, 56, 34, 22]
    li2 = [(lambda y: y % 2)(i) for i in filter(lambda x: x > 5, li)]
    print(li2)
    
    
    """
    2、定义一个可以使用send传入域名,自动生成一个在前面加上http://,在后面加上路径/user/login的url地址,
    生成器最多可以生成5个url,生成5条数据之后再去生成,则报错StopIteration
    使用案例:
    # 例如:
    res = g.send('www.baidu.com')
    # 生成数据res为:http://www.baidu.com/user/logim'
    """
    
    
    def work_yield():
        res = yield 1
        for i in range(5):
            res = f'http://{res}/user/login'
            res = yield res
    
    
    def generator():
        g = work_yield()
        next(g)
        for j in range(6):
            try:
                res = g.send(f'www.baidu{j}.com')
                print(res)
            except StopIteration:
                print(f'已经生成5条数据了,需要报错StopIteration')
    
    
    print(generator())
    
    """
    3、对下面的列表进行排序(规则:根据元素的name字段的值的大小进行排序)
    li2 = [{'id': 1, "name": 100}, {'id': 7, "name": 9}, {'id': 3, "name": 1}]
    """
    li2 = [{'id': 1, 'name': 100}, {'id': 7, 'name': 9}, {'id': 3, 'name': 1}]
    li2.sort(key=lambda i: i["name"])
    print(li2)
    
    
    """
    4、数据类型转换操作有一组用例数据如下:
    cases = [
        ['case_id', 'case_title', 'url', 'data', 'excepted'],
        [1, '用例1', 'www.baudi.com', '001', 'ok'],
        [4, '用例4', 'www.baudi.com', '002', 'ok'],
        [2, '用例2', 'www.baudi.com', '002', 'ok'],
        [3, '用例3', 'www.baudi.com', '002', 'ok'],
        [5, '用例5', 'www.baudi.com', '002', 'ok'],
    ]
    要求:通过相关操作转换为以下格式
    res1 = [
        {'case_id': 1, 'case_title': '用例1', 'url': 'www.baudi.com', 'data': '001', 'excepted': 'ok'},
        {'case_id': 4, 'case_title': '用例4', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'},
        {'case_id': 2, 'case_title': '用例2', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'},
        {'case_id': 3, 'case_title': '用例3', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'},
        {'case_id': 5, 'case_title': '用例5', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'}
    ]
    """
    cases = [
        ['case_id', 'case_title', 'url', 'data', 'excepted'],
        [1, '用例1', 'www.baudi.com', '001', 'ok'],
        [4, '用例4', 'www.baudi.com', '002', 'ok'],
        [2, '用例2', 'www.baudi.com', '002', 'ok'],
        [3, '用例3', 'www.baudi.com', '002', 'ok'],
        [5, '用例5', 'www.baudi.com', '002', 'ok'],
    ]
    res1 = []
    key = cases[0]
    for case in cases[1:]:
        # 使用dict(zip(list1,list2))将两个列表转成字典,前面的一个列表作为key,后面的列表作为value
        case_dict = dict(zip(cases[0], case))
        res1.append(case_dict)
    
    print(res1)
    
  • 相关阅读:
    【C语言数据结构——————栈和队列4000字详解】
    Turtlebot3-burger入门教程#foxy版#-OpenCR安装
    iphone备份后怎么转到新手机,iphone备份在哪里查看
    MATLAB基础应用精讲-【基础知识篇】MATLAB特点及应用领域
    spring中使用getBean获取ioc容器创建的对象常见异常
    树选择排序(Tree Selection Sorting)介绍
    速盾:ddos高防ip原理
    vue_Delete `␍`eslint(prettier/prettier)
    show processlist 详解
    G-BioSciences F(ab‘)2 片段制备试剂盒解决方案
  • 原文地址:https://blog.csdn.net/cxl0406/article/details/127661480