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