SortedListWithKey可以使用 lambda 函数对列表进行排序:
from sortedcontainers import SortedListWithKey
SortedListWithKey([[4, 'last'], [1, 'first']], key=lambda x: x[0])
# Result: SortedListWithKey([[1, 'first'], [4, 'last']], key=<function <lambda> at 0x107f5d730>)
但是假设我需要使用set()来仅具有唯一值,文档说它还接受key=用于按自定义函数排序的参数,但我无法让它工作:
from sortedcontainers import SortedSet
SortedSet([[4, 'last'], [1, 'first']], key=lambda x: x[0])
将抛出以下异常:
values = set(chain(*iterables))
TypeError: unhashable type: 'list'
有没有办法做到这一点?