测开学习--函数进阶--生成器

迭代器和生成器作业

第一道题

“”"
1、现在有一个列表 li = [11,21,4,55,6,67,123,54,66,9,90,56,34,22],
请将 大于5的数据过滤出来,然后除以2取余数,结果放到一个生成器中(通过生成器表达式实现)
“”"

print('——————————————第一道题————————————————————')
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’
“”"

print('——————————————第二道题————————————————————')
def work_yield():
    print('START------')
    val = yield 1
    for i in range(4):
        val = f'http;//{val}/user/login'
        val = yield val
        
g = work_yield()
print(next(g))
for i in range(5):
    try:
        res = g.send(f'www.baidu{i+1}.com')
        print(res)
    except StopIteration:
        print(f'{i+1}已经不能生成了')

第三道题

“”"
3、通过相关操将下面的列表cases 转换为字典格式
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’}
]
“”"


print('——————————————第三道题————————————————————')
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'],
]
list_cases = []
for i in range(1, len(cases)):
    dict_1 = dict(zip(cases[0], cases[i]))
    list_cases.append(dict_1)
print(list_cases)
#使用推导式 可缩减为一行代码
list_cases = [dict(zip(cases[0], cases_1)) for cases_1 in cases[1:]]
print(list_cases)

猜你喜欢

转载自blog.csdn.net/Yxf11824/article/details/123469190