このソートコードはどのように機能していますか? イテレータによって返された値がリストのソートにどのように使用されているのか理解できませんか?
mylist=["zero","two","one"]
list1=[3,1,2]
it = iter(list1)
sorted(mylist, key=lambda x: next(it))
出力:
['two', 'one', 'zero']
このソートコードはどのように機能していますか? イテレータによって返された値がリストのソートにどのように使用されているのか理解できませんか?
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!