Python 文本生成算法

Python 文本生成算法,python,algorithm,Python,Algorithm,我正在寻找一个算法或一些建议来实现它。 输入: 输出: ["1 word 3", "1 word 4", "2 word 3", "2 word 4"] 此外,我还想支持嵌套结构--{1 | 2{0 | 1}}->[1,20,21] 我意识到这个问题太笼统了,但我不想实施车轮。也许你也看到过类似的事情 UPD 它只支持{|}{|}结构。没有空话,没有嵌套结构。此项目看起来适合您: Exrex是一个工具,它生成给定正则表达式的所有匹配字符串 表情 此项目看起来适合您: Exrex是一个工具,它生

我正在寻找一个算法或一些建议来实现它。 输入:

输出:

["1 word 3", "1 word 4", "2 word 3", "2 word 4"]
此外,我还想支持嵌套结构--{1 | 2{0 | 1}}->[1,20,21] 我意识到这个问题太笼统了,但我不想实施车轮。也许你也看到过类似的事情

UPD


它只支持{|}{|}结构。没有空话,没有嵌套结构。

此项目看起来适合您:

Exrex是一个工具,它生成给定正则表达式的所有匹配字符串 表情


此项目看起来适合您:

Exrex是一个工具,它生成给定正则表达式的所有匹配字符串 表情


pyparsing发布的示例包括一个正则表达式反相器。

pyparsing发布的示例包括一个正则表达式反相器。

如果问题过于笼统,则可能会被关闭。试着把你的想法和尝试集中起来,告诉我们你想出了什么。虽然我以前在计算理论书籍中见过这种问题,但一般的想法是,你的字母表中有一些标记,夹着一个不变的标记。如果问题太笼统,它很可能会被关闭。试着把你的想法和尝试集中起来,告诉我们你想出了什么。虽然我以前在计算理论书籍中见过这种问题,但一般的想法是,你的字母表中有一些标记,夹着一个不变的标记。
["1 word 3", "1 word 4", "2 word 3", "2 word 4"]
from pyparsing import *
from collections import deque

s = u"{1|2} {3|4}"

deque = deque()

def mesh_lists(listOne, listTwo):
    result = []
    for l1 in listOne:
        for l2 in listTwo:
            firstWord = str(l1).strip()
            secondWord = str(l2).strip()
            result.append(" " + firstWord + " " + l2 + " ")
    return result

def action(string, pos, token):
    global deque
    deque.append(list(token[0]))

def processDeque():
    global deque
    while len(deque) > 1:
        l1 = deque.popleft()
        l2 = deque.popleft()
        res = mesh_lists(l1,l2)
        deque.appendleft(res)
    return [x.strip() for x in deque[0]]

_lcurl = Suppress('{')
_rcurl = Suppress('}')
_pipe = Suppress('|')
word = Regex("[^{|}]+")
varBlock = Forward()
entry = word | varBlock
varList = Group(entry + ZeroOrMore(_pipe + entry))
varBlock << (_lcurl + Optional(varList) + _rcurl).setParseAction(action)
template = ZeroOrMore(entry)

res = template.parseString(s)
print processDeque()