【发布时间】:2020-08-20 06:41:48
【问题描述】:
list1 = ['a', 'b', 'c', 'd', 'ab', 'bc', 'cd', 'abc', 'bcd', 'abcd']
如何根据对应的ascii 值对该列表值进行排序?
sorted(list1, key=len,reverse=True)
Outputs : ['abcd', 'abc', 'bcd', 'ab', 'bc', 'cd', 'a', 'b', 'c', 'd']
ascii values : [394, 294, 297, 195, 197, 199, 97, 98, 99, 100]
试过这个,它打印 ascii 值。但可能我需要存储在字典中。然后对其进行排序,然后提取。任何简单且最佳的处理方式(可能使用映射或不使用任何其他列表/字典)。
for i in list1:
print(i, sum(map(ord, i)))
基于ascii的预期输出(降序):
['abcd', 'bcd','abc','cd','bc','ab', 'd', 'c', 'b','a']
[ 394 , 297, 294, 199, 197, 195, 100, 99, 98, 97]
【问题讨论】:
-
你的预期输出是什么?
-
基于其 ASCII 值 ['abcd', 'bcd','abc','cd','bc','ab','d','c','b', 'a'] 按降序排列。
-
@superbrain 列表根据 ascii 值降序排列。上面发布的输出是基于 key=len(不是 ascii)获得的
-
@superbrain 可能会让您感到困惑。更新了预期的输出,希望现在很清楚。因此被否决?
标签: python-3.x list sorting ascii