如何将两个列表中的相同索引添加在一起?

问题描述 投票:0回答:2

所以我知道标题听起来有点愚蠢,但我想做的是让两个列表将两个列表中的相同索引加在一起,所以如果我有 list1[ 2, 3, 4] 和 list2[5, 6 , 7],他们会在函数内相加,然后给出总和,将它们与最小值进行比较,然后确定函数是真还是假。

def lock_and_key(key_cuts, lock_pinning, minimum):
    for v1 in key_cuts:
        for v2 in lock_pinning:
            sum = abs(v1 + v2 -6)
            if sum > minimum:
                return False
    else:
        return True

if lock_and_key([2.1, 3.5, 2.7], [4.1, 2.5, 3.2],  0.25):
    print('Unlocked.')
else:
    print('Still locked.')**

我已经将其大部分设置下来,但我正在处理的问题是列表可以包含不同数量的变量,因此我无法像 list1[0] + list[0] 这样一成不变地设置索引。

python list
2个回答
1
投票

尝试一下 python 的内置 zip 方法,它将可迭代的相同索引连接在一起,然后你就可以这样做:

def lock_and_key(key_cuts, lock_pinning, minimum):
    for value_of_key, value_of_lock in zip(key_cuts, lock_pinning)
        sum = abs(value_of_key + value_of_lock -6)
        if sum > minimum:
            return False
    return True

1
投票

如果我没理解错的话,你想将每个最小的相同索引相互比较。为此,您可以将两个数组压缩在一起(如果它们大小相同)并进行检查:

def lock_and_key(key_cuts, lock_pinning, minimum):
    for v1, v2 in zip(key_cuts, lock_pinning):
        sum = abs(v1 + v2 - 6)
        if sum > minimum:
            return False
    return True

if lock_and_key([2.1, 3.5, 2.7], [4.1, 2.5, 3.2], 0.25):
    print('Unlocked.')
else:
    print('Still locked.')
© www.soinside.com 2019 - 2024. All rights reserved.