【问题标题】:I need to generate numbers excluding specific ranges我需要生成不包括特定范围的数字
【发布时间】:2020-10-14 05:32:57
【问题描述】:

这是我尝试过的:

import itertools
a = [1, 2, 3, 4, 10, 11, 12, 22, 23, 24]
comb = set(itertools.combinations(a, 3))
for x in comb:
     if (x == (range(1, 10), range(1, 10), range(1, 10))):
          continue
     print(x)

我需要做的是忽略 3 个小于 10 的数字的组合。

【问题讨论】:

  • 如果您需要排除小于 10 的数字,您可以先过滤您的列表。a = [i for i in a if i >= 10]

标签: python numbers generator


【解决方案1】:

我认为问题出在这条线上:

if (x == (range(1, 10), range(1, 10), range(1, 10))):

范围在 python 中不是条件。 range(1,10) 创建一个从 1 到 10 的数字序列。

相反,我们需要检查组合中的每个元素是否小于 10。这可能如下所示:

if (x[0]<10) and (x[1]<10) and (x[2]<10):

此外,可以通过在运行组合之前过滤 a 来优化代码,而不是使用 for 循环。但我会把它留给你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    相关资源
    最近更新 更多