Skip to main content
 首页 » 编程设计

python之在 2 级列表中形成所有可能的字符串

2025年05月04日23artech

我有一个像这样的两级列表:

[['Demonstrative-Pronoun', 'Personal-Pronoun', 'Adjective', 'Noun', 'Noun', 'Indefinite-Pronouns'], ['Verb', 'Adjective', 'Adverb', 'Noun', 'Noun'], ['Verb', 'Verb', 'Verb', 'Verb', 'Adjective', 'Noun', 'Noun', 'Verb'], ['Verb', 'Verb', 'Verb', 'Verb', 'Verb', 'Verb', 'Noun']] 

我想从这些列表中形成所有可能的字符串,例如:

  1. 指示代词动词动词动词
  2. 指示代词形容词动词动词 等等

在 python 中是否有更快的方法或任何快速方法?这个列表是硬编码的,但它实际上可能包含任意数量的元素和子元素

谢谢!

请您参考如下方法:

使用 itertools.product 来制作一堆嵌套的 for 循环:

import itertools 
 
items = [...] 
 
for grouping in itertools.product(*items): 
    print ' '.join(grouping) 

这将为您提供所有 1680 种组合。

来自评论:“您可以用 map(set, items) 替换项目,它会删除重复项。这会将计数降至 120。”