Treeview 元组排序为字符串(错误顺序)
Treeview Tuple Sort as String (Wrong Order)
好吧,经过几个小时的摆弄,我似乎无法修复这个错误。
我已经尝试将我的类型更改为整数,使用 key = operator.itemgetter(0) 我也尝试过其他修复方法,比如使用 iteration_utilities: chained, functools --> Without success
它 returns 一个元组列表,例如:
[('27958', 'I008'), ('28497', 'I00C'), ('28652', 'I018'), ('28653', 'I001'), ( '28713', 'I009'), ('29262', 'I00A'), ('29448', 'I00B'), ('9234', 'I00D'), ('9250 ', 'I00E')]
如您所见,我假设以 9 开头的数字在末尾,因为无论如何它都将其视为字符串。
我使用的是基本的 Treeview_sort_column 功能,没有什么花哨的。
def treeview_sort_column(t1, col, reverse):
l = [(t1.set(k, int(col)), k) for k in t1.get_children('')]
l.sort(reverse=reverse)
print(l)
for index, (val, k) in enumerate(l):
t1.move(k, '', index)
t1.heading(col, command=lambda _col=col: treeview_sort_column(t1, _col, not reverse))
for col in columns:
t1.heading(col, text=col,command=lambda _col=col: treeview_sort_column(t1, _col, False))
谢谢(刚刚学习)确实解决了问题。
它立即简单地解决了我所有的问题......比我尝试过的所有问题都容易得多!
寻找解决方案的人
l.sort(key=lambda t: int(t[0]), reverse=reverse)
好吧,经过几个小时的摆弄,我似乎无法修复这个错误。 我已经尝试将我的类型更改为整数,使用 key = operator.itemgetter(0) 我也尝试过其他修复方法,比如使用 iteration_utilities: chained, functools --> Without success
它 returns 一个元组列表,例如:
[('27958', 'I008'), ('28497', 'I00C'), ('28652', 'I018'), ('28653', 'I001'), ( '28713', 'I009'), ('29262', 'I00A'), ('29448', 'I00B'), ('9234', 'I00D'), ('9250 ', 'I00E')]
如您所见,我假设以 9 开头的数字在末尾,因为无论如何它都将其视为字符串。
我使用的是基本的 Treeview_sort_column 功能,没有什么花哨的。
def treeview_sort_column(t1, col, reverse):
l = [(t1.set(k, int(col)), k) for k in t1.get_children('')]
l.sort(reverse=reverse)
print(l)
for index, (val, k) in enumerate(l):
t1.move(k, '', index)
t1.heading(col, command=lambda _col=col: treeview_sort_column(t1, _col, not reverse))
for col in columns:
t1.heading(col, text=col,command=lambda _col=col: treeview_sort_column(t1, _col, False))
谢谢(刚刚学习)确实解决了问题。 它立即简单地解决了我所有的问题......比我尝试过的所有问题都容易得多!
寻找解决方案的人
l.sort(key=lambda t: int(t[0]), reverse=reverse)