#!/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)