如何在Python中对带有异常的列表进行排序
我想按字母顺序对字典排序,但我们还有其他土耳其语字母,因此我不能使用sorted()函数 例如,我们有字母“ç”,它在字母“c”之后。如何使字母“ç”位于字母“c”之后如何在Python中对带有异常的列表进行排序,python,python-3.x,sorting,dictionary,Python,Python 3.x,Sorting,Dictionary,我想按字母顺序对字典排序,但我们还有其他土耳其语字母,因此我不能使用sorted()函数 例如,我们有字母“ç”,它在字母“c”之后。如何使字母“ç”位于字母“c”之后 顺便说一句,这将不仅仅是一个字母,我们还有很多,字典将包含数百个单词和值 您可以通过注入自己的字母顺序来实现这一点,例如: letters = "abcçdefgğhıijklmnoöprsştuüvyz" letters_dict = {i:letters.index(i) for i in letters} print(so
顺便说一句,这将不仅仅是一个字母,我们还有很多,字典将包含数百个单词和值 您可以通过注入自己的字母顺序来实现这一点,例如:
letters = "abcçdefgğhıijklmnoöprsştuüvyz"
letters_dict = {i:letters.index(i) for i in letters}
print(sorted("açobzöğge", key=letters_dict.get))
以上内容应输出:
['a','b','ç','e','g','ğ','o','ö','z']
您可以使用键
参数进行排序,但是主要的挑战是如何定义哪个字母“更大”。也许您可以使用一些字母值表对它们进行排序。像这样:
LETTER_VALUES = {
...
"c": 100,
"ç": 110
...
}
sorted_ar = sorted(char_array, key=lambda ch: LETTER_VALUES.get(ch1, ord(ch)))
当然,数字只是随机的,例如,
ord
是“故障默认值”的最简单示例。以下是一个基于土耳其语字母的简单解决方案:
alphabet = "abcçdefgğhıijklmnoöprsştuüvyz"
words = ["merhaba", "aşk", "köpek", "Teşekkürle"]
sorted_words = sorted(words, key=lambda word: tuple(alphabet.index(c) for c in word.lower()))
这段代码能够使用字典顺序对单词进行排序。它也适用于包含大写字母的单词。您可以提供一个键函数,将字母映射到字母表中的顺序位置。那么您是否有字母表?这是你需要的所有信件的清单?相关:。同样与土耳其和国际化有关:这不适用于大写字母。而且这只订购字母,不订购单词!