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))
网友评论