首页 > 解决方案 > 如何找到一个数组中的哪些元素与另一个数组中的每个元素相加?

问题描述

假设:

reversedPriv = [52,27,13,6,3,2]
array= [9] #For this example we only used one element in the array, assume more elements
var = 0
numA = []
for i in array:
    for j in reversedPriv:
        while var!= j:
            if j < i:
                var = var + j
                numA.append(j)
                numA.sort()
print(numA)

我期待它能够append [3,6]打印numA,但它目前什么都不做。我忽略的while循环是否有一些条件?

代码的重点是找出reversedPriv每个元素的总和array并将它们附加到列表中numA。例如,列表中reversedPriv只有 6 和 3 的总和为 9。因此,numA = [3,6]目前“数组”只有一个元素,但代码应该能够将其放大 n 个元素。

标签: pythonarrayslistdebuggingencryption

解决方案


这是一个熊猫方法:

import itertools 
import pandas as pd
df = pd.DataFrame(itertools.combinations( [52,27,13,6,3,2], 2))  
nums = [9] 
df['sum'] = df[0] + df[1] 
matches=[] 
for num in nums: 
    matches.append(list(df.loc[df['sum'] == num][0]) + list(df.loc[df['sum'] == num][1])) 

matches
# [[6, 3]]  

推荐阅读