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']))