Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中对带有异常的列表进行排序_Python_Python 3.x_Sorting_Dictionary - Fatal编程技术网

如何在Python中对带有异常的列表进行排序

如何在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

我想按字母顺序对字典排序,但我们还有其他土耳其语字母,因此我不能使用sorted()函数

例如,我们有字母“ç”,它在字母“c”之后。如何使字母“ç”位于字母“c”之后


顺便说一句,这将不仅仅是一个字母,我们还有很多,字典将包含数百个单词和值

您可以通过注入自己的字母顺序来实现这一点,例如:

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()))

这段代码能够使用字典顺序对单词进行排序。它也适用于包含大写字母的单词。

您可以提供一个键函数,将字母映射到字母表中的顺序位置。那么您是否有字母表?这是你需要的所有信件的清单?相关:。同样与土耳其和国际化有关:这不适用于大写字母。而且这只订购字母,不订购单词!