所以我知道标题听起来有点愚蠢,但我想做的是让两个列表将两个列表中的相同索引加在一起,所以如果我有 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 的内置 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
如果我没理解错的话,你想将每个最小的相同索引相互比较。为此,您可以将两个数组压缩在一起(如果它们大小相同)并进行检查:
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.')