繁体   English   中英

我想对从小字符开始的给定列表进行排序?

[英]I want to sort the given list which start from small character?

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

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

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

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

您可以使用 dict 并在那里存储两个列表!

sorting = {
    'lowercase':[],
    'uppercase':[]
}
for value in original_list:
    if value.istitle():
        sorting['uppercase'].append(value)
    else:
        sorting['lowercase'].append(value)

#extend
result = sorted(sorting['lowercase']) + sorted(sorting['uppercase'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM