按单词和单词中的字符对单词列表进行排序

问题描述

在不使用 .sort()sorted() 的情况下,我想通过将每个字符转换为数字,对单词中的字符进行排序,然后对单词进行排序来对列表中的每个单词进行排序。我觉得我已经在这里尝试了一切。我知道我需要将它们转换为小写,然后使用 ord(letter) - 96 获得 3,26261,122,211,134,2,31,22626,218,912,然后对每个“组”进行排序,然后将每个组转换回字符串。

输入:c zzA aBb bAa Acd B CA zzz ZR IL
输出abb acd b baa c ca il zr zza zzz

解决方法

你应该这样做:

a = ["c","zzA","aBb","bAa","Acd","B","CA","zzz","ZR","I"]
b = sorted([i.lower() for i in a])

print(b)
# ['abb','acd','b','baa','c','ca','i','zr','zza','zzz']
,

不使用排序功能。使用循环和冒泡排序

input_list = ['c','zzA','aBb','bAa','Acd','B','CA','zzz','ZR','IL']
for i in range(len(input_list)):
    for j in range (i+1,len(input_list)):
        if input_list[i].lower() > input_list[j].lower():
            input_list[i],input_list[j] = input_list[j],input_list[i]
print (input_list)

输出将是:

['aBb','IL','zzz']

使用带有 key=str.lower 的排序功能

您也可以在不进行循环的情况下执行此操作。 list.sort(key=str.lower) 其中 list 是值列表。

>>> x = ['c','IL']
>>> x=
['c','IL']

>>> x.sort(key=str.lower)
>>> x
['aBb','zzz']

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...