【发布时间】:2019-10-27 18:52:12
【问题描述】:
我在 python 练习中遇到了一些问题。我有一个包含 10 个元素的元组的大列表,其中包含 20 个数字的所有组合。
import itertools
Comb = []
data = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
for i in itertools.combinations(data, 10):
Comb.append(i)
我想减少列表删除与另一个列表的元组至少有 7 个元素的元组
L=[(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),(11,12,13,14,15,16,17,18,19,20),(1, 2, 3, 5, 6, 7, 9, 10, 11, 12)]
我试过这样解决:
for x in Comb:
for i, y in enumerate(Comb):
for j in L:
similarity = len(set(y).intersection(set(j)))
if similarity > 7:
del Comb[i]
但这似乎不起作用。
有什么帮助吗?
【问题讨论】:
-
您是否遇到任何错误或只是逻辑问题?
-
@phalanx 它根本不会删除所有具有超过 7 个共同元素的元组。可能是索引有问题...
标签: python list set tuples combinations