根据模式在字符串中进行排列
Posted
技术标签:
【中文标题】根据模式在字符串中进行排列【英文标题】: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 类型的问题。 欢迎来到 ***。请阅读并遵循帮助文档中的发布指南。 on topic 和 how to ask 在这里申请。 *** 不是设计、编码、研究或教程服务。 【参考方案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']
【讨论】:
以上是关于根据模式在字符串中进行排列的主要内容,如果未能解决你的问题,请参考以下文章
将一个给定字符串根据给定的行数,以从上往下从左到右进行 Z 字形排列。