2019-01-05 day 10作業

4328 ワード

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.関数を書き込み、文字列内のすべての数値文字を抽出します.例えば、受信'ahjs 233 k 23 sss 4 k'戻り:'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メソッドを実装する:別の辞書の要素を1つの辞書で更新する(独自の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']))