解释这个Lambda函数Python

ver*_*ude 0 python sorting lambda

在格式化之前,我需要对字典文件进行排序.我使用了list.sort,它把它放在ascii顺序(大写字母小写前).所以我在网上找到了这个代码来进行排序.它有效,但我不完全理解lambda如何使用2个变量和cmp().我很困惑cmp正在比较以及lambda正在使用哪两个变量.请解释lambda如何在sort函数中使用cmp.

f = open("swedish.txt", 'r')
f2 = open("swed.txt", 'w')
doc = f.read().split('\n')

doc.sort(lambda x, y: cmp(x.lower(), y.lower()))

for line in doc:
    f2.write(line + '\n')

f.close()
f2.close()
Run Code Online (Sandbox Code Playgroud)

Dan*_*iel 5

要对列表[b,a,c]进行排序,必须将a与b和a与c进行比较,依此类推.没有别的东西可以做这个lambda,它将列表中的两个组件相互比较.对于您的情况,key-argument更合适:

doc.sort(key=str.lower)
Run Code Online (Sandbox Code Playgroud)