我正在尝试创建一种语言并按字母顺序对其中的单词进行排序,我正在为其创建一个Python脚本,因为我自己无法让事情变得简单。我需要用字母排序:
"æǽaàbdyýeéfgiíʒklmnŋΩΏoóøǿɤprʃsþðtʊuúʌvɯjz"
。
我尝试了这篇文章中的最佳答案
def sortA(l, alphabet="AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"):
returnVal = sorted(l, key=lambda word: [alphabet.index(c) for c in word])
return returnVal
keys = sortA(keys, "æǽaàbdyýeéfgiíʒklmnŋΩΏoóøǿɤprʃsþðtʊuúʌvɯjz")
VSC 说
Exception has occurred: ValueError
substring not found
File "filepath", line 13, in <lambda>
returnVal = sorted(l, key=lambda word: [alphabet.index(c) for c in word])
^^^^^^^^^^^^^^^^^
您的错误可能是因为
keys
中的某个字符不在 alphabet
中。
您可以在
sortA
中添加处理:
def sortA(l, alphabet="AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"):
def get_value(char):
if char in alphabet:
return alphabet.index(char)
else:
return len(alphabet)
returnVal = sorted(l, key=lambda word: [get_value(c) for c in word])
return returnVal
Ofc,你总是可以打印
keys
并查看它的值是否不是它应该的值..