chy*_*ENG 11 python lambda dictionary
我最近接受采访.面试官问我如何迭代词典python.我说所有的方式用于声明.但是他告诉我lambda怎么样?
我非常感到困惑,我认为lambda是一个匿名函数,但它如何迭代一个字典?一些代码如下:
new_dict = sorted(old_dict.items(), lambda x: x[1]) # sorted by value in dict
Run Code Online (Sandbox Code Playgroud)
但在此代码中,lambda用作提供比较密钥的函数.你觉得这个问题怎么样?
And*_*rey 10
你没有迭代lambda.在Python中迭代可迭代对象有以下几种方法:
for 声明(你的答案)[x for x in y],字典{key: value for key, value in x}和集{x for x in y}(x for x in y)map,all,itertools模块)next函数直到StopIteration发生.注意:3除非您稍后迭代该生成器,否则不会迭代它.在4的情况下,它取决于功能.
对于迭代特定集合(如dict或list),可以使用更多技术,例如while col: remove element或使用索引切片技巧.
现在lambda进入图片.您可以在其中一些函数中使用lambdas,例如:map(lambda x: x*2, [1, 2, 3]).但是这里的lambda与迭代过程本身无关,你可以传递一个常规函数map(func, [1, 2, 3]).
您可以像这样使用 lambda 迭代 dict:
d = {'a': 1, 'b': 2}
values = map(lambda key: d[key], d.keys())
Run Code Online (Sandbox Code Playgroud)