【问题标题】:Making permutations in string based on a pattern根据模式在字符串中进行排列
【发布时间】:2017-07-06 17:09:52
【问题描述】:

输入列表:(仅当 index[1] 有 / 时)

['A', 'dog,big/small;rat,big/small', '12', '21']

返回列表:

['A', 'dog,big;rat,big', '12', '21']
['A', 'dog,small;rat,big', '12', '21']
['A', 'dog,big;rat,small', '12', '21']
['A', 'dog,small;rat,small', '12', '21']

【问题讨论】:

  • 你试过什么?我在这里没有看到 Stack Overflow 类型的问题。
  • 欢迎来到 StackOverflow。请阅读并遵循帮助文档中的发布指南。 on topichow to ask 在这里申请。 StackOverflow 不是设计、编码、研究或教程服务。

标签: python itertools


【解决方案1】:

这应该适用于该类型的一般输入字符串:

def permute(s):
    a, b = s.split(',')
    return [a + "," + c for c in b.split('/')]

def traverse(s):
    parts = s.split(';', 1)
    if len(parts) == 1:
        return permute(s)
    else:
        return sum([[k + ';' + l for l in traverse(parts[1])] for k in permute(parts[0])], [])

for s in traverse('dog,big/small;rat,big/small'):
    print ['A', s, '12', '21']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 2018-02-23
    • 2015-08-13
    • 2019-07-13
    • 1970-01-01
    • 2020-05-19
    相关资源
    最近更新 更多