首页 > 解决方案 > 我想对从小字符开始的给定列表进行排序?

问题描述

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 循环,这是错误的编码,请提供另一种更短、更清晰、更易读的解决方案

我想在这个给定的列表中使用从小写字母开始的所有项目对列表进行排序

标签: pythonlistsorting

解决方案


key您可以为首先检查字符串(即以大写字母开头)的参数编写一个 lambda .istitle,然后按字母顺序排序。

>>> sorted(data, key=lambda i: (i.istitle(), i))
['aman', 'ghazala', 'navneet', 'sita', 'vikram', 'Avneet', 'Babar', 'Komal', 'Ram']

推荐阅读