Python高阶函数练习题:

高阶函数_练习题:

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)
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值