2017-07-06 1 views
-3

Eingangsliste: (nur wenn der Index [1] mit /)Herstellung Permutationen in String basierend auf einem Muster

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

Return-Liste:

['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'] 
+1

Was haben Sie versucht? Ich sehe hier keine Stack Overflow-Frage. – Prune

+0

Willkommen bei StackOverflow. Bitte lesen und befolgen Sie die Buchungsrichtlinien in der Hilfe. [zum Thema] (http://stackoverflow.com/help/on-topic) und [how to ask] (http://stackoverflow.com/help/how-to-ask) gilt hier. StackOverflow ist kein Design-, Codierungs-, Recherche- oder Lernprogramm. – Prune

Antwort

0

Dieser sollte für die allgemeine Input- arbeiten Zeichenfolgen dieses Typs:

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'] 
Verwandte Themen