选择具有在整个列表中具有多个出现的项目的子列表

时间:2017-10-06 02:53:12

标签: python-3.x

我有一个嵌套的整数列表,范围从1到5(不是真的)。我想确保每个整数在列表中至少出现一次,如果缺少一个整数,则用包含缺失整数的列表替换子列表。 (我有一整套可能的子列表可供选择。)我在编写语法时遇到了麻烦,以确保删除的列表包含多个出现多余的整数,这样我就不会重新创建丢失的整数问题我试图解决。这是一个例子:

a = [[2], [4], [1], [1, 2], [1,2,5]]

缺少通知3。如果我随机选择第二个或第五个子列表进行替换,则4或5将丢失。我需要选择第一个,第三个或第四个子列表,其中每个子列表元素我有一个list.count(i)> 1.

因此,我想创建一个可行的选择候选者的新列表。我相信解决方案看起来应该是这样的

b = [item for item in a if sum(a.count(i)) > 1 for i in item]

但是Python3抱怨

UnboundLocalError: local variable 'i' referenced before assignment.

有什么建议吗?注意:算法需要能够扩展到数千个子列表,但这种情况很少发生,因为在这些情况下丢失整数的概率几乎为0。

感谢您的期待!

0 个答案:

没有答案