python-3.x - 在 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)
解决方案
您可以使用内置 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)
推荐阅读
- xaml - Xamarin Forms 使用反射获取可绑定属性的属性
- python - 加载在线托管的 TensorFlow (.h5) 模型
- c# - if-else 条件不能按预期工作
- prometheus - 使用 Traefik Prometheus 计算 API 的平均响应时间
- python - 如何获得用户输入和随机生成的数字的总和?
- powershell - 在 PowerShell 中将数组转换为逗号分隔的列表
- c# - 响应已开始 Blazor 中的 HttpContext.SignOutAsync() 方法调用引发异常
- powershell - 复合赋值运算符在子作用域中的行为如何?
- javascript - 如何从两个数组中删除数据?
- java - 应用程序启动方法 JavaFX 1.8 中的异常