我有一个类中的键绑定列表,如下所示:
self.key_bind_list = [["A", "B"], ["C"], ["SHIFT", "NUM6", "NUM7"], ["A", "B"], ["A", "B", "C"]]
- 在这种情况下,子列表
["A", "B"]
应该检测到重复,而不是["A", "B"]
和["A", "B", "C"]
我想检查主列表中是否有重复项(假设每个子列表中的键都是唯一的,顺序并不重要,我不需要知道哪些键不是唯一的)
我已尝试在以下内容中使用set方法:
if(len(self.key_bind_list) != len(set(self.key_bind_list))):
这给了我一个unhashable type: 'list'
错误。
3条答案
按热度按时间5lwkijsr1#
假设您只想检查是否存在重复项,并打印出哪些子列表包含重复项,那么可以使用一种方法来处理包含
set
元素的列表,例如:输出:
如果列表中的any子列表与另一个子列表重复(无论顺序如何),只需返回
bool
值,您可以这样做:k2fxgqgv2#
使用
collections.Counter
。它很适合建模多集。要绕过unhashable type
错误,需要对tuple
进行强制转换,但这会使匹配对子列表的排序有意义通过使用一组相等标准检查所有对,即所有项都等于某个顺序:
lzfw57am3#
返回
True
表示列表列表中存在重复项。