美文网首页
2019-01-05 day10作业

2019-01-05 day10作业

作者: woming | 来源:发表于2019-01-05 20:24 被阅读0次

1.写一个函数将一个指定的列表中的元素逆序(如[1, 2, 3] -> [3, 2, 1])(注意:不要使列表自带的逆序函数)

def my_reverse(list1: list):
    list2 = []
    count = 0
    while count < len(list1)+len(list2):
        index = len(list1)-1
        list2.append(list1[index])
        del list1[index]
        count += 1
    print('元素逆序:', list2)
    # return list2


list1 = [1, 2, 3, 4, 5, 'a', 6]
my_reverse(list1)
# list1 = my_reverse(list1)
# print(list1)

2.写一个函数,提取出字符串中所有奇数位上的字符

def get_odd_number(str1: str):

    for index in range(1, len(str1), 2):

        print('奇数位上的字符:', str1[index])


get_odd_number('1234567')

3.写一个匿名函数,判断指定的年是否是闰

def leap_year(num: int):
    if num % 4 == 0 and num % 100 != 0 or num % 400 == 0:
        print('%d年是闰年' %num)
    else:
        print('%d年不是闰年' %num)


leap_year(2000)
leap_year(1990)

5.写函数, 提取字符串中所有的数字字符。
例如: 传入'ahjs233k23sss4k' 返回: '233234'

def del_num(str1: str):
    str2 = ''
    for char in str1:
        if '0' <= char <= '9':
            str2 += char
    print('提取字符串中的所有数字:', str2)

del_num('ahjs233k23sss4k')

6.写一个函数,获取列表中的成绩的平均值,和最高分

# 解1
def average_maximum1(list1: list):
    print('成绩的平均值:', sum(list1) / len(list1))
    print('最高分:', max(list1))


average_maximum1([3, 4, 5, 6])


# 解2

all_students = [
    {'name': '张三', 'age': 19, 'score': 94},
    {'name': '李四', 'age': 34, 'score': 70},
    {'name': '地方三', 'age': 12, 'score': 45},
    {'name': '范甘迪三', 'age': 45, 'score': 76},
]

def average_maximum2(list1: list):
    sum1 = 0
    list2 = []
    for item in list1:
        sum1 += item['score']
        list2.append(item['score'])
    average = sum1/len(list1)
    maximum = max(list2)
    print('成绩的平均值:', average)
    print('最高分:', maximum)

average_maximum2(all_students)

7.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新的列表返回给调用者


def odd_ele(seq: list or tuple):
    list1 = []
    for index in range(1, len(seq), 2):
        list1.append(seq[index])
    print('新的列表:', list1)


odd_ele((22, 33, 44, 55, 11))

8.实现属于自己的字典update方法:用一个字典去更新另一个字典的元素(不能使用自带的update方法)
yt_update(字典1, 字典2)

def my_update(dict1: dict, dict2: dict):
    dict3 = dict1.copy()
    if len(dict2) < len(dict3):
        for key1 in dict3:
            for key2 in dict2:
                if key2 == key1:
                    dict1[key1] = dict2[key2]
                    break
            dict1[key2] = dict2[key2]
    else:
        for key2 in dict2:
            for key1 in dict3:
                if key2 == key1:
                    dict1[key1] = dict2[key2]
                    break
            dict1[key2] = dict2[key2]
    print('更新后的字典1:', dict1)


my_update({'a': 1, 'b': 2, 'c': 3}, {'e': 44, 'b': 4, 'a': 5, 'd': '6'})

9.实现属于自己的items方法:将字典转换成列表,字典中的键值对转换成元祖。(不能使用items方法)
yt_items(字典)
例如:{'a': 1, 'b': 2, 'c': 3} - --> [('a', 1), ('b', 2), ('c', 3)]

def my_items(dict1: dict):
    list1 = []
    for key in dict1:
        tuple1 = key, dict1[key]
        list1.append(tuple1)
    print('字典转成指定列表:', list1)


my_items({'a': 1, 'b': 2, 'c': 3})

10.有一个列表中保存的所一个班的学生信息,使用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

print('成绩最好的学生:', max(all_student, key=lambda x: x['score']))
print('年龄最大的学生', max(all_student, key=lambda x: x['age']))

相关文章

网友评论

      本文标题:2019-01-05 day10作业

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