This itertools example 仅将一项与另一项进行比较。我需要同时将 1 个项目与其他 2 个项目进行比较。
my_list = [10, 420, 11]
我需要能够比较下面查询中的这些项目,并进行以下比较:
我在 SQL 查询中运行它。
SELECT COUNT(*) FROM (
SELECT app FROM vendor WHERE vendor=10 AND active
INTERSECT
SELECT app FROM vendor WHERE vendor NOT IN (420, 11) AND active = 0
)
答案 0 :(得分:2)
这将比较列表中元素的所有可能组合。
arr = [10, 420, 11]
for i, el in enumerate(arr):
leftover = arr[:i] + arr[i+1:]
print(el, leftover, el in leftover)
打印以下内容:
10 [420, 11] False
420 [10, 11] False
11 [10, 420] False
答案 1 :(得分:2)
编写一个函数,该函数返回删除了指定元素的列表的副本。然后遍历列表,返回每个项目和删除该项目的列表。
def list_without(l, i):
result = l[:] # copy list
l.pop(i) # remove the specified index
return l
my_list = [10, 420, 11]
my_combinations = [(item, list_without(my_list, i)) for i, item in enumerate(my_list)]
print(my_combinations)
# output:
# [(10, (420, 11)), (420, (10, 11)), (11, (10, 420))]