这个排序代码是如何工作的?我无法理解迭代器返回的值是如何用于对列表进行排序的?
mylist=["zero","two","one"]
list1=[3,1,2]
it = iter(list1)
sorted(mylist, key=lambda x: next(it))
输出:
['two', 'one', 'zero']
最佳答案
它的工作原理是这样的 - key=lambda x: next(it)
部分说明:分配一个订单值 3
,然后是 1
然后 2
到 mylist
中的每个元素。所以 two
首先出现,然后是 one
然后是 zero
:
["zero", "two", "one"] # original list
[ 3, 1, 2 ] # assign this order to each element
现在,排序后:
[ 1, 2, 3 ] # sorted keys
["two", "one", "zero"] # and there you go!
关于python - 这个排序代码是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18689293/