【python基础语法】第7天作业练习题

import keyword
'''
# 第一题:简单题
1、什么是全局变量?
2、什么是局部变量?
3、函数内部如何修改全局变量(如何声明全局变量 )?
4、写出已经学过的所有python关键字,分别写出用途?
# 第二题:数据转换
现在有以下数据, li1 = ["{'a':11,'b':2}", "[11,22,33,44]"]
需要转换为以下格式: li1 = [{'a': 11, 'b': 2}, [11, 22, 33, 44]]
请封装一个函数,按上述要求实现数据的格式转换
# 第三题:数据转换
# 有一组用例数据如下:
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'}
]
# 要求:封装一个函数,完成上述数据转换的功能,并且将case_id大于3的用例数据过滤出来,得到如下结果
res = [
    {'case_id': 4, 'case_title': '用例4', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'},
    {'case_id': 5, 'case_title': '用例5', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'}
'''
'''
# 第一题:简单题
1、什么是全局变量?
直接定义在文件中的变量,叫做全局变量,在该文件任何地方都能够访问
2、什么是局部变量?
定义在函数内部的变量叫做局部变量
3、函数内部如何修改全局变量(如何声明全局变量 )?
声明全局变量:
global关键字:将函数内部的局部变量转换为全局变量
修改全局变量:
使用nonlocal可以在嵌套函数内部修改外部函数的局部变量的值
"""
"""
# 第二题:数据转换
现在有以下数据, li1 = ["{'a':11,'b':2}", "[11,22,33,44]"]
需要转换为以下格式: li1 = [{'a': 11, 'b': 2}, [11, 22, 33, 44]]
请封装一个函数,按上述要求实现数据的格式转换
'''
# 第二题
data = ["{'a':11,'b':2}", "[11,22,33,44]"]
def work2():
    new_data = []
    for i in data:
        res = eval(i)
        new_data.append(res)
    return new_data
li1 = work2()
print(li1)

# 第三题
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'],
]

def work3(cases):
    # 创建一个新列表
    new_cases = []
    # 获取新数据的key
    title = cases[0]
    # 遍历所有的数据
    for data in cases[1:]:
        # 将遍历的数据和key进行聚合打包,并转换为字典
        c = dict(zip(title,data))
        print(c)
        # 判断转换后的数据,放到信列表中
        if c["case_id"] > 3:
            new_cases.append(c)
    # 返回所有转换之后的结果
    return new_cases
res = work3(cases)
print(res)

# 方式二:
def work3(cases):
    # 创建一个新列表
    new_cases = []
    # 获取新数据的key
    title = cases[0]
    # 遍历所有的数据
    for data in cases[1:]:
        # 将遍历的数据和key进行聚合打包,并转换为字典
        c = dict(zip(title,data))
        # 将转换后的数据,放到新列表中
        new_cases.append(c)
        # 使用fitter过滤器结果
        # lambda后面跟函数的匿名参数x说明需要一个参数
        # 冒号后面是匿名函数的返回值,返回参数
        # new_cases,是需要传递的数据,字典参数
        def func(x):
            return x["case_id"] > 3
        result = filter(func,new_cases)
        # result = filter(lambda x:x["case_id"]>3,new_cases)
        return result

 

posted on 2020-02-26 19:41  诚实的表达自己  阅读(494)  评论(0编辑  收藏  举报