美文网首页
作业Day10_函数提升

作业Day10_函数提升

作者: RiskHY | 来源:发表于2019-01-06 17:38 被阅读0次
    1. 写一个函数将一个指定的列表中的元素逆序( 如[1, 2, 3] -> [3, 2, 1])(注意:不要使 表自带的逆序函数)
    def lhy_antitone(list_num):
        len_num = len(list_num)
        for index in range(len_num // 2):
            list_num[index], list_num[len_num - index - 1] = list_num[len_num - index - 1], list_num[index]
        return list_num
    
    
    print(lhy_antitone([1, 4, 5, 3, 7]))
    
    2. 写一个函数,提取出字符串中所有奇数位上的字符
    def lhy_extract(param_str):
        list_str = []
        for index in range(0, len(param_str), 2):
            list_str.append(param_str[index])
        list_strs = ''.join(list_str)
        return list_strs
    
    
    print(lhy_extract('asqwegfds'))
    
    3. 写一个匿名函数,判断指定的年是否是闰
    lhy_year = lambda year: '%d年是闰年' % year if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0 else '%d年不是闰年' % year
    
    print(lhy_year(2014))
    
    4. 写函数,提取字符串中所有的数字字符。

    例如: 传入'ahjs233k23sss4k' 返回: '233234'

    def lhy_str(param_str):
        list_str = []
        for item in param_str:
            if '0' < item < '9':
                list_str.append(item)
        return ' '.join(list_str)
    
    
    print(lhy_str('sd252sa23ds45dfg3/s3'))
    
    5. 写一个函数,获取列表中的成绩的平均值和最高分
    list_score = [
        {'score': 90},
        {'score': 79},
        {'score': 85},
        {'score': 99},
        {'score': 95},
    ]
    
    
    def lhy_job5(param_score):
        """
        获取列表中的成绩的平均值,和最高分
        :param param_score: 需要获取的学生信息列表
        :return: 平均值和最高分
        """
        score_sum = 0
        score_max = 0
        if isinstance(param_score[0], dict):
            for item in param_score:
                score_sum += item['score']
                if score_max < item['score']:
                    score_max = item['score']
        else:
            for item in param_score:
                score_sum += item
                if score_max < item:
                    score_max = item
        score_average = score_sum / len(param_score)
        return score_average, score_max
    
    
    print(lhy_job5(list_score))
    
    6. 写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新的列表返回给调用者
    param_list = [12, 'name', 20, 'sex', 1245, 'age']
    
    
    def lhy_job6(param):
        """
        检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新的列表返回给调用者
        :param param: 需要输入的列表
        :return: 新列表
        """
        new_list = []
        for item in range(1, len(param), 2):
            new_list.append(param[item])
        return new_list
    
    
    print(lhy_job6(param_list))
    
    7. 实现属于自己的字典update方法:用一个字典去更新另一个字典的元素(不能使用自带的update方法)

    yt_update(字典1, 字典2)

    old_dict = {'a': 1, 'b': 2}
    new_dict = {'a': 3, 'c': 4}
    
    
    def lhy_update(param_dict, new_dict):
        """
        用一个字典去更新另一个字典的元素
        :param param_dict: 第一个字典
        :param new_dict: 第二个字典
        :return: 更新后的字典
        """
        for item in new_dict:
            param_dict[item] = new_dict[item]
        return param_dict
    
    
    print(lhy_update(old_dict, new_dict))
    
    8. 实现属于自己的items方法:将字典转换成列表,字典中的键值对转换成元祖。(不能使用items方法)

    yt_items(字典)
    例如:{'a': 1, 'b':2, 'c':3} ---> [('a', 1), ('b', 2), ('c', 3)]

    lhy_dict = {'a': 1, 'b': 2, 'c': 3}
    
    
    def lhy_dict_list(param_dict):
        """
        将字典转换成列表,字典中的键值对转换成元祖。
        :param param_dict: 原字典
        :return: 新列表
        """
        list_dict = []
        for item in param_dict:
            list_dict.append((item, param_dict[item]))
        return list_dict
    
    
    print(lhy_dict_list(lhy_dict))
    
    9. 有一个列表中保存的所一个班的学生信息,使用max函数获取列表中成绩最好的学生信息和年龄最大的学生信息
    all_student = [   
        {'name': '张三', 'age': 19, 'score': 90},  
        {'name': 'stu1', 'age': 30, 'score': 79},  
        {'name': 'xiaoming', 'age': 12, 'score': 87},  
        {'name': 'stu22', 'age': 29, 'score': 99}  
    ]  
    

    注意: max和min函数也有参数key

    list_student = [
        {'name': '张三', 'age': 19, 'score': 90},
        {'name': 'stu1', 'age': 30, 'score': 79},
        {'name': 'xiaoming', 'age': 12, 'score': 87},
        {'name': 'stu22', 'age': 29, 'score': 99}
    ]
    
    
    def lhy_student(param_student):
        '''
        使用max函数获取列表中成绩最好的学生信息和年龄最大的学生信息
        :param param_student: 学生信息列表
        :return: 成绩最好和年龄最大的学生信息
        '''
        max_score = max(param_student, key=lambda item: item['score'])
        max_age = max(param_student, key=lambda item: item['age'])
        max_list = []
        for item in param_student:
            if item['score'] == max_score['score'] or item['age'] == max_age['age']:
                max_list.append(item)
        
        return max_list
    
    
    print(lhy_student(list_student))
    

    相关文章

      网友评论

          本文标题:作业Day10_函数提升

          本文链接:https://www.haomeiwen.com/subject/cicdrqtx.html