扩展列表理解选项

2024-04-19 06:44:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我将使用一个来自项目Euler练习的代码示例。你知道吗

[(a, b, c) for a in range(1, 334) for b in range(1, 334) for c in range(1,334) if c == 1000 - a - b and a < b  and b < c and a**2 + b**2 == c**2]

我对列表的理解知之甚少,但我想知道是否有一种方法可以暗示a、b、c是int>;0,并且你想增加它们

这方面的两个伪代码示例可能类似于:

[(a, b, c) for a > 0 for b > a for c > b if c == 1000 - a - b]
[(a, b, c) for int(a) for int(b) for int(c) if c == 1000 - a - b]

有可能这样做吗?你知道吗


Tags: and项目方法代码ingt示例列表
1条回答
网友
1楼 · 发布于 2024-04-19 06:44:59

以下是您的方法的简化:

[(a, b, 1000 - a - b) for a in range(1, 332) for b in range(a+1, 333)  if  a**2 + b**2 == (1000 - a - b)**2]
  • c是fix,它总是1000 - a - b,所以不需要循环 它的价值观。

  • 您可以将b的范围开始为range(a+1,333),这样您就不必这样做了 测试b>a

尽管我认为解决问题的方法是错误的

相关问题 更多 >