【问题标题】:How can I loop till certain range inside the list?如何循环直到列表内的某个范围?
【发布时间】:2019-09-25 07:29:37
【问题描述】:

我有一个 5000 字的列表。

words=['asd','bsd',.........,'dbn']

我正在尝试使单词的可能组合

comb = combinations(words,2)
for i in list(comb): 
  b=''.join(i)
  print(b)

如何为前 100 个单词组合运行循环?

【问题讨论】:

  • comb 到底是什么? itertools.combinations的输出?
  • 您要组合多少个单词?两个或更多?

标签: python-3.x


【解决方案1】:

您可以使用itertools 模块中的islicecombinations。下面将显示长度为 2 的前 100 个组合:

from itertools import combinations, islice

for c in islice(combinations(words, 2), 100):
    print(c)

请注意,这两个函数都返回惰性生成器,因此并非所有组合都必须首先生成(这就是调用 list(comb...) 时发生的情况)。

【讨论】:

    【解决方案2】:

    有一个很棒的模块叫做itertools,它很可能有你需要的东西。置换函数示例:

    # permutations('ABCD', 2) --> AB AC AD BA BC BD CA CB CD DA DB DC
    # permutations(range(3)) --> 012 021 102 120 201 210
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-22
      • 1970-01-01
      相关资源
      最近更新 更多