高阶函数_练习题:
1.利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:[‘adam’, ‘LISA’, ‘barT’],输出:[‘Adam’, ‘Lisa’, ‘Bart’]
s1 = ['adam', 'LISA', 'barT']
res = map(lambda x: x.title(), s1)
print(list(res))
2.利用map函数和lambda表达式,实现[‘1’,’2’,’3’]变成[1,2,3]
lt = ['1','2','3']
res = map(lambda x:int(x), lt)
print(list(res))
3.尽可能少的代码实现删除列表中重复的值 ? 例如:[1, 1, 1, 23, 3, 4, 4]
lt = [1, 1, 1, 23, 3, 4, 4]
res = sorted(set(lt), key=lt.index)
print(res)
4.将两个列表合并成为指定形式。例如:
[1,3,5,7,9],[2,4,6,8,10] 合并为:[[1,2],[3,4],[5,6],[7,8],[9,10]]
试试你能想到几种方法呢?
# 方法一
lt1 = [1, 3, 5, 7, 9]
lt2 = [2, 4, 6, 8, 10]
res = [[lt1[i],lt2[i]] for i in range(5)]
print(res)
# 方法二
def unity(x, y):
return [x, y]
lt1 = [1, 3, 5, 7, 9]
lt2 = [2, 4, 6, 8, 10]
res = map(unity, lt1, lt2)
print(list(res))
# 方法三
lt1 = [1, 3, 5, 7, 9]
lt2 = [2, 4, 6, 8, 10]
res = map(lambda x, y: [x, y], lt1, lt2)
print(list(res))
5.请按照列表中元素的age由大到小排序
list1 = [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}]
def getAge(lt):
age = lt['age']
return age
list1 = [{'name': 'a', 'age': 20}, {'name': 'b', 'age': 30}, {'name': 'c', 'age': 25}]
res = sorted(list1, key=getAge, reverse=True)
print(res)
6.编写一个函数,传入一个字符串元素的列表。返回根据字符串长度排序的列表。(使用2种sort的方式分别实现)
例如:lst = [“aa”,“bbbb”,“ccc”,“d”]
输出:[“d”,“aa”,“ccc”,“bbbb”]
# 使用sorted()函数
def sortStr(lt):
res = sorted(lst, key=len)
return list(res)
lst = ["aa", "bbbb", "ccc", "d"]
result = sortStr(lst)
print("sorted()方法:", result)
#使用sort()方法
def sortStr(lt):
lt.sort(key=len)
return lt
lst = ["aa", "bbbb", "ccc", "d"]
result = sortStr(lst)
print("sort()方法:", result)