【发布时间】:2017-09-15 03:32:33
【问题描述】:
我正在创建一个简单的 GUI 应用程序来管理未知单词,同时学习一门新语言。不过,我有一个列表,我试图按字母顺序从 A 到 Z 排序:
def sort_words(self):
sorted_words = sorted(self.words)
self.listBox.delete(0, END)
for item in sorted_words:
self.listBox.insert(END, item.wordorphrase)
问题是我得到了:
/usr/bin/python3.5 /home/cali/PycharmProjects/Vocabulary/Vocabulary.py
Traceback (most recent call last):
File "/home/cali/PycharmProjects/Vocabulary/Vocabulary.py", line 361, in <module>
main()
File "/home/cali/PycharmProjects/Vocabulary/Vocabulary.py", line 355, in main
gui = Vocabulary(root)
File "/home/cali/PycharmProjects/Vocabulary/Vocabulary.py", line 28, in __init__
self.load_words()
File "/home/cali/PycharmProjects/Vocabulary/Vocabulary.py", line 153, in load_words
self.sort_words()
File "/home/cali/PycharmProjects/Vocabulary/Vocabulary.py", line 156, in sort_words
sorted_words = sorted(self.words)
TypeError: unorderable types: Word() < Word()
Process finished with exit code 1
请注意,它是 Word 对象的列表,而不是字符串。
如何对我的单词进行排序?
【问题讨论】:
-
用适当的特殊方法定义您的 Word 类,以便 Python 知道如何对它们进行排序; Making a python user-defined class sortable, hashable、stackoverflow.com/questions/4630341/…、stackoverflow.com/questions/16955001/…、 的可能重复项