Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在列表上循环并同时将列表中的一项与其他两项进行比较_Python_Sql - Fatal编程技术网

Python 在列表上循环并同时将列表中的一项与其他两项进行比较

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

仅将一项与另一项进行比较。我需要同时比较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 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来实现这一点