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

Python 按单词和单词中的字符对单词列表进行排序,python,python-3.x,list-comprehension,Python,Python 3.x,List Comprehension,在不使用.sort或sorted的情况下,我希望通过将每个字符转换为数字,对单词中的字符进行排序,然后对单词进行排序来对列表中的每个单词进行排序。我觉得我在这里什么都试过了。我知道我需要将它们转换为小写,然后使用ordletter-96得到32661122211134,2,3122626218912,然后对每个组进行排序,然后将每个组转换回字符串 输入:c zzA aBb bAa Acd B CA zzz ZR IL 输出:abb acd b baa c ca il zr zza zzz您应该这

在不使用.sort或sorted的情况下,我希望通过将每个字符转换为数字,对单词中的字符进行排序,然后对单词进行排序来对列表中的每个单词进行排序。我觉得我在这里什么都试过了。我知道我需要将它们转换为小写,然后使用ordletter-96得到32661122211134,2,3122626218912,然后对每个组进行排序,然后将每个组转换回字符串

输入: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']
不使用排序功能。使用循环和气泡排序 输出将是:

['aBb', 'Acd', 'B', 'bAa', 'c', 'CA', 'IL', 'ZR', 'zzA', 'zzz']
使用键为str.lower的排序函数 您也可以在不进行循环的情况下执行此操作。list.sortkey=str.lower,其中list是值列表

>>> x = ['c','zzA','aBb','bAa','Acd','B','CA','zzz','ZR','IL']
>>> x=
['c', 'zzA', 'aBb', 'bAa', 'Acd', 'B', 'CA', 'zzz', 'ZR', 'IL']

>>> x.sort(key=str.lower)
>>> x
['aBb', 'Acd', 'B', 'bAa', 'c', 'CA', 'IL', 'ZR', 'zzA', 'zzz']

您不需要将字母转换为数字。只需将每个字符串转换为小写字母,然后对数组进行排序。您应该将它们转换为数字,还是这只是您解决问题的方法?赋值不需要内置函数。我必须写一个算法来解决它。我们能用str.lower吗?或者这也是不允许的?没关系。循环、地图、列表等都很好。我只需要写一个排序函数,所以我不能使用内置的排序,因为如果没有内置函数,调用赋值就太容易了。我必须写一个算法来解决它。@jan,这个解决方案将原来的列表值改为小写。使用key=str.lower保留原始文件value@JoeFerndz此解决方案如何更改原始列表?在printb之前检查printa的输出后,我无法复制它。我不能使用“.sort”或“sorted”获得它。刚刚看到你在其他回复上的留言
>>> x = ['c','zzA','aBb','bAa','Acd','B','CA','zzz','ZR','IL']
>>> x=
['c', 'zzA', 'aBb', 'bAa', 'Acd', 'B', 'CA', 'zzz', 'ZR', 'IL']

>>> x.sort(key=str.lower)
>>> x
['aBb', 'Acd', 'B', 'bAa', 'c', 'CA', 'IL', 'ZR', 'zzA', 'zzz']