Python 在列表上循环并同时将列表中的一项与其他两项进行比较
仅将一项与另一项进行比较。我需要同时比较1个项目和2个其他项目Python 在列表上循环并同时将列表中的一项与其他两项进行比较,python,sql,Python,Sql,仅将一项与另一项进行比较。我需要同时比较1个项目和2个其他项目 my_list=[10,420,11] 我需要能够将以下查询中的这些项目与以下比较进行比较: 10到420和11(如下代码所示) 420到10和11 11到420和10 我在SQL查询中运行这个 SELECT COUNT(*) FROM ( SELECT app FROM vendor WHERE vendor=10 AND active INTERSECT SELECT app FROM vendor WHE
my_list=[10,420,11]
我需要能够将以下查询中的这些项目与以下比较进行比较:
- 10到420和11(如下代码所示)
- 420到10和11
- 11到420和10
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
)
这将比较列表中所有可能的元素组合
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
编写一个函数,返回删除了指定元素的列表副本。然后迭代列表,返回每个项目以及删除该项目的列表
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))]
你说的“比较”是什么意思?你的意思是
如果[420,11]中有10个?我应该说循环。现在编辑的问题仍然是“比较”。你这是什么意思?在查询中,它在哪里比较列表中的项目?它将表中的供应商与列表中的项目进行比较。如果我在itertools.combinations中对I,k执行操作,我只有两个项目可以对它们执行任何操作。我需要三件东西。我很难解释-请看问题中的查询,想象一下交换第一个供应商编号,然后在第二个选项中选择更改括号内的值作为列表的剩余值。这是将1与1进行比较,不是1到2。你能举例说明预期结果应该是什么样的吗?同时检查[420,11]
和[11,420]
似乎是多余的。是的,我想每个“前导”数字应该只检查一次,比如“10,[420,11]----420,[10,11]----11,[10,420]``编辑以排除冗余。我们实际上不需要itertools来实现这一点