我可以定义返回重复元素的索引列表中的一个功能:如何得到list元素是列表的重复元素的索引?
>>> def indices_of_list_element_duplicates(x):
... seen = set()
... seen_add = seen.add
... return [index for index, element in enumerate(x)\
... if element in seen or seen_add(element)]
...
此功能非常适用于简单的列表:
>>> a = [1, 2, 3, 3, 4, 3]
>>> indices_of_list_element_duplicates(a)
[3, 5]
我应该如何改变这个函数来得到它在包含列表元素的列表上工作?
>>> b = [[1, 1], [2, 2], [3, "d"], [3, "d"], [4, 4], [3, "d"]]
>>> indices_of_list_element_duplicates(b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in indices_of_list_element_duplicates
TypeError: unhashable type: 'list'
您如何期望它能在清单列表上工作?我基本上可以看到三种方式。 (1)与以前一样在外部单独列表中工作,(2)与以前一样工作,但比较重复_列表_(如'[1,2]'出现两次),(3)像以前一样工作但仅适用于列表的嵌套列表(不适用于常规的整数列表)。 –