温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python lambda的相关题目有哪些

发布时间:2021-12-17 17:39:54 来源:亿速云 阅读:275 作者:iii 栏目:大数据

这篇文章主要介绍“Python lambda的相关题目有哪些”,在日常操作中,相信很多人在Python lambda的相关题目有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python lambda的相关题目有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

题目

1 给定一个数组,输出两个新数组,分别是里面每一个数字的二次方和三次方。

  • 输入:
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

  • 输出:

    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]        

   [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000] 

2 按某个指定的参数,去排序字典组成的列表。

比如把如下的列表,按照内部字典的 color 进行排序

  • 输入:    
    [{'make': 'Nokia', 'model': 216, 'color': 'Black'}, {'make': 'Mi Max', 'model': '2', 'color': 'Gold'}, {'make': 'Samsung', 'model': 7, 'color': 'Blue'}]
  • 输出:    
    [{'make': 'Nokia', 'model': 216, 'color': 'Black'}, {'make': 'Samsung', 'model': 7, 'color': 'Blue'}, {'make': 'Mi Max', 'model': '2', 'color': 'Gold'}]
 

3 给定一个数组,输出两个新数组,分别是里面的偶数和奇数。

  • 输入:
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

  • 输出:

偶数: [2, 4, 6, 8, 10]

奇数: [1, 3, 5, 7, 9]



解答

1

这个题目,我们需要循环每一个数字,然后分别去算二次方和三次方。既然要用 lambda,当然就不用 for 循环了。用 lambda 的语法,取数组中的每一个 x 为参数,然后函数体直接去计算。因为是要映射到每一个数字去计算,所以用 map 来换算。最后,用 list 转为新的列表。

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

square_nums = list(map(lambda x: x ** 2, nums))
print(square_nums)
cube_nums = list(map(lambda x: x ** 3, nums))
print(cube_nums)
   

2

这个题目需要我们用 lambda 函数进行排序。可以用 lambda 函数结合 sorted 函数来进行。查看def sorted(iterable, key, reverse)函数可以发现,可以通过指定第二个参数 key 来达到自定义排序的目的,这里的 key 是一个自定义的函数。也就是我们用 lambda 函数的地方。原列表由一系列的字典组成,我们把字典里面要排序的 color 一个个取出来,用 lambda 函数指定为 key 的值就可以了。

models = [{'make':'Nokia', 'model':216, 'color':'Black'}, {'make':'Mi Max', 'model':'2', 'color':'Gold'}, {'make':'Samsung', 'model': 7, 'color':'Blue'}]
print("排序前:")
print(models)
sorted_models = sorted(models, key=lambda x: x['color'])
print("排序后:")
print(sorted_models)
     

3

这个题目,和刚才第一题很像。我们需要循环每一个数字,然后分别去过滤偶数和奇数。偶数和奇数用整除 2 是否为 0 去判断。这里怎么过滤呢?好办,只需要把刚才的 map 换成 filter 即可。最后,用 list 转为新的列表。

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = list(filter(lambda x: x%2 == 0, nums))
print(even_nums)
odd_nums = list(filter(lambda x: x%2 != 0, nums))
print(odd_nums)

到此,关于“Python lambda的相关题目有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI