我可以在列表中进行排序时访问列表吗? list.sort()
b = ['b', 'e', 'f', 'd', 'c', 'g', 'a']
f = 'check this'
def m(i):
print i, b, f
return None
b.sort(key=m)
print b
Run Code Online (Sandbox Code Playgroud)
这回来了
b [] check this
e [] check this
f [] check this
d [] check this
c [] check this
g [] check this
a [] check this
Run Code Online (Sandbox Code Playgroud)
请注意,列表的各个项目将b发送到功能m.但是在m列表中b是空的,但它可以看到变量f,其范围与列表相同b.为什么功能m打印b为[]?
有没有办法(在python中),我可以按频率对列表进行排序?
例如,
[1,2,3,4,3,3,3,6,7,1,1,9,3,2]
Run Code Online (Sandbox Code Playgroud)
上面的列表将按其值的频率顺序排序,以创建以下列表,其中频率最高的项目位于前面:
[3,3,3,3,3,1,1,1,2,2,4,6,7,9]
Run Code Online (Sandbox Code Playgroud)