首页 > 解决方案 > 在 Python 中计算加起来为特定值的数字对

问题描述

我想计算一个列表中有多少对数字可以添加到一个特定的数字,这是我在 python 中的代码,但输出不是它应该的

list = [1,2,3,4]
x=3
count = 0
for i in range(len(list)):
for j in range(len(list)):
if i + j == x:
count+=1
print(count)

标签: python-3.x

解决方案


您可以使用内置 itertools 模块中的函数简化代码,具体取决于您希望如何遍历列表,即组合、替换组合或产品。

import itertools as itt

in_list = [1,2,3,4]
tgt_num = 3
count = 0
for a,b in itt.combinations(in_list, 2): # returns 1
# for a,b in itt.combinations_with_replacement(in_list, 2): # returns 1
# for a,b in itt.product(in_list, in_list): # returns 2
    if a + b == tgt_num:
            count += 1
print(count)

推荐阅读