2017-01-11 1 views
-4

Dies ist eine ziemlich spezielle Anfrage. Anstatt das Konzept abstrakt zu erklären, werde ich ein Beispiel geben, was ich gerne tun würde.Komplexes Zusammenführen von zwei Listen: eine Vorlage und viele Permutationen

Ich habe eine 'Vorlage' Liste oder string: [ X, G, X] ... oder 'XGX'

Und viele 'Permutation' Listen: [U, U], [U, C], [C, U], [C, C] ... oder 'UU', 'UC', 'CU', 'CC'

Und ich möchte die folgende Liste erhalten: [ UGU, CGU, UGC, CGC]

Haben Sie irgendwelche Ideen, wie Sie dieses Problem angehen können?

Danke!

+0

Angenommen perm_list = '[[ 'u', u ''] [ 'u', 'c'], [ 'c', 'u'], ['c', 'c']] 'dann könntest du' ['G'.join (x) für x in perm_list] 'machen – gobrewers14

Antwort

0
def resolveTemplates(_template, perms): 
    for perm in perms: 
     template = list(_template) 
     perm = iter(perm) 
     for i,char in enumerate(template): 
      if char != "X": continue 
      template[i] = next(perm) 
     yield template 

Output:

In [113]: print(*resolveTemplates('XGX', ['UU', 'UC', 'CU', 'CC']), sep='\n') 
['U', 'G', 'U'] 
['U', 'G', 'C'] 
['C', 'G', 'U'] 
['C', 'G', 'C'] 
Verwandte Themen