我有一个包含数千个子列表的列表。这些子列表中的每一个都包含混合字符串和布尔值的组合,例如:
lst1 = [['k', 'b', False], ['k', 'a', True], ['a', 'a', 'a'], ['a', 'b', 'a'], ['a', 'a' , False], ...]
Run Code Online (Sandbox Code Playgroud)
我想根据子列表的内容对此列表进行排序,例如:
lst2 = [['a', 'a', 'a'], ['a', 'a' , False], ['a', 'b', 'a'], ['k', 'a', True], ['k', 'b', False], ...]
Run Code Online (Sandbox Code Playgroud)
我试过这样排序:
lst2 = sorted([list(sorted(x)) for x in lst1])
print(lst2)
Run Code Online (Sandbox Code Playgroud)
由于某些字段中布尔值与字符串的组合,这不起作用,所以我得到TypeError: '<' not supported between instances of 'bool' and 'str'.
我还尝试了一种蛮力方法,创建所有可能的组合,然后检查它们是否在第一个列表中:
col1 = ['a', 'b', 'c', d, e, f, g, h, i, j, k, ..., True, False]
col2 = …Run Code Online (Sandbox Code Playgroud)