我想对从小字符开始的给定列表进行排序?
given list
["Ram", "vikram", "Avneet", "navneet", "ghazala", "Komal", "sita", "aman", "Babar"]
output (this is expected output)
['aman', 'ghazala', 'navneet', 'sita', 'vikram', 'Avneet', 'Babar', 'Komal', 'Ram']
how I get this answer
list2 = sorted(list1)
for i in list2:
if i.istitle():
int = list2.index(i)
for i in range(int+1):
appended = list2[0]
list2.remove(appended)
list2.append(appended)
print(list2)
但我使用了 2 个 for 循环,这是一个糟糕的编码,请提供另一个更短、更清晰、更易读的解决方案
我想在这个给定的列表中首先从小写字母开始对列表进行排序
回答
您可以为key首先检查字符串.istitle(即以大写字母开头)的参数编写一个 lambda ,然后按字母顺序排序。
>>> sorted(data, key=lambda i: (i.istitle(), i))
['aman', 'ghazala', 'navneet', 'sita', 'vikram', 'Avneet', 'Babar', 'Komal', 'Ram']