加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python中的lambda可以迭代dict吗?

发布时间:2020-12-16 23:45:41 所属栏目:Python 来源:网络整理
导读:我最近接受采访.面试官问我在 python中迭代dict的方法.我说所有的方式用于声明.但是他告诉我lambda怎么样? 我非常感到困惑,我认为lambda是一个匿名函数,但它如何迭代一个字典?一些代码如下: new_dict = sorted(old_dict.items(),lambda x: x[1]) # sorted
我最近接受采访.面试官问我在 python中迭代dict的方法.我说所有的方式用于声明.但是他告诉我lambda怎么样?

我非常感到困惑,我认为lambda是一个匿名函数,但它如何迭代一个字典?一些代码如下:

new_dict = sorted(old_dict.items(),lambda x: x[1]) # sorted by value in dict

但在此代码中,lambda用作提供比较密钥的函数.你觉得这个问题怎么样?

解决方法

你不用lambda迭代.在Python中迭代可迭代对象有以下几种方法:

> for statement(你的答案)
>理解,包括列表[x表示y中的x],字典{键:键的值,x中的值}和设置{x表示x中的x}
>生成器表达式:(x代表y的x)
>传递给迭代它的函数(map,all,itertools模块)
>手动调用next函数,直到StopIteration发生.

注意:3除非您稍后迭代该生成器,否则不会迭代它.在4的情况下,它取决于功能.

对于迭代特定集合(如dict或list),可以使用更多技术,例如col:remove元素或使用索引切片技巧.

现在lambda进入了画面.您可以在其中一些函数中使用lambdas,例如:map(lambda x:x * 2,[1,2,3]).但是这里的lambda与迭代过程本身无关,你可以传递一个常规的函数映射(func,3]).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读