Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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_Python 3.x_List_Tuples_Combinations - Fatal编程技术网

Python 如何在一个列表中找到一对数字,并将其作为给定的数字求和

Python 如何在一个列表中找到一对数字,并将其作为给定的数字求和,python,python-3.x,list,tuples,combinations,Python,Python 3.x,List,Tuples,Combinations,几天前,我遇到了一个问题,上面有一个数字列表和一个名为total的值。现在我们需要编写一个程序,给出一个元组列表(元组中只有2个元素),每个元组的和应该等于total的值。示例:以下是输入: input = [1,2,3,4,6,7,8,9] total = 10 输出结果如下: output = [(1,9), (2,8), (3,7), (4,6)] 使用列表理解: 注意不要将input用作变量名,因为它会隐藏内置的input()函数 要在不使用itertools的情况下执行此操作,我

几天前,我遇到了一个问题,上面有一个数字列表和一个名为total的值。现在我们需要编写一个程序,给出一个元组列表(元组中只有2个元素),每个元组的和应该等于total的值。示例:以下是输入:

input = [1,2,3,4,6,7,8,9] 
total = 10
输出结果如下:

output = [(1,9), (2,8), (3,7), (4,6)]

使用列表理解:

注意不要将
input
用作变量名,因为它会隐藏内置的
input()
函数

要在不使用itertools的情况下执行此操作,我们可以使用以下列表:

>>> [(inpt[i],inpt[j]) for i in range(len(inpt)) for j in range(i+1, len(inpt)) if sum((inpt[i],inpt[j])) == total]
>>> [(1, 9), (2, 8), (3, 7), (4, 6)]

使用列表理解:

注意不要将
input
用作变量名,因为它会隐藏内置的
input()
函数

要在不使用itertools的情况下执行此操作,我们可以使用以下列表:

>>> [(inpt[i],inpt[j]) for i in range(len(inpt)) for j in range(i+1, len(inpt)) if sum((inpt[i],inpt[j])) == total]
>>> [(1, 9), (2, 8), (3, 7), (4, 6)]

您可以找到差异并检查该值是否为剩余列表的一部分,如下所示-

>>> [(index,i) for index,i in enumerate(input)] #how enumerate works
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 6), (5, 7), (6, 8), (7, 9)]
>>> [(i,total-i) for index,i in enumerate(input) if (total-i) in input[index+1:]]
[(1, 9), (2, 8), (3, 7), (4, 6)]

您可以找到差异并检查该值是否为剩余列表的一部分,如下所示-

>>> [(index,i) for index,i in enumerate(input)] #how enumerate works
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 6), (5, 7), (6, 8), (7, 9)]
>>> [(i,total-i) for index,i in enumerate(input) if (total-i) in input[index+1:]]
[(1, 9), (2, 8), (3, 7), (4, 6)]