l = ['JOE', 'Kate', 'WILfried', 'alfred', 'denis']
def k(x):
for i,j in enumerate(x):
if j.islower():
return (-i,x)
return (-len(x),x)
print(sorted(l,key=k))
names = ['JOE', 'Kate', 'WILfried', 'alfred', 'denis']
k = lambda s: ([-i for i, u in enumerate(map(str.isupper, s)) if not u] or [-len(s)],
s.lower())
print sorted(names, key=k)
>>> ['JOE', 'WILfried', 'Kate', 'denis', 'alfred']
您可以使用:
更新:
。。。在
以下功能满足要求
这将产生以下输出:
^{pr2}$函数k赋予字符串开头出现的大写字母数的权重。
编辑:感谢@jdeseha的编辑
这里有一个(有点难看的)解决方案:
也许你想把
lambda
作为一个适当的函数。在相关问题 更多 >
编程相关推荐