2017-04-19 1 views
-3

ich drei Listen im gegebenen Format habe:Python: Ersatz in Listen

A = ['**New fund offering** documents required for opening an account in the name of a single Individual', 'Can an Individual open more than one Investment Account or folio'] 
B = [u'**New fund offering**', u'NFOs', u'Systematic investment plan', u'Systematic investment plans', u'SIPs', u'SWPs'] 
C = [u'**NFO',** u'NFO', u'SIP', u'SIP', u'SIP', u'SWP'] 

Ziel ist die Formulierung in der Liste A mit entsprechender Abkürzung in der Liste C, wenn der Satz paßt gefunden zu ersetzen in der Liste B. Bitte lassen Sie mich wissen, wie man das in Python macht. So die endgültige Liste A wird geworden:

A = ['NFO documents required for opening an account in the name of a single Individual', 'Can an Individual open more than one Investment Account or folio'] 
+4

, was Sie bisher versucht haben, ? –

+2

jeder Versuch, den Sie uns zeigen könnten? – Astrom

+0

Verwenden Sie '' dict (zip (B, C)) '', um ein Mapping zu erstellen. Dann überlege dir, wie du deine Auswechslungen machen kannst. Probleme können sein, gierige vs. nicht gierige Übereinstimmungen, Ersetzungen, die von der Reihenfolge abhängen, in der sie verwendet werden (dh Ersatz A erzeugt eine Zeichenkette, die durch B ersetzt werden kann, was ohne A nicht möglich gewesen wäre), usw. – allo

Antwort

0

Sie str.replace verwenden können Teile der Zeichenfolge zu ersetzen, und dann ist es möglich in zu verwenden, um Übereinstimmungen zu überprüfen:

for idx_a, substring in enumerate(A): 
    for part, replacement in zip(B, C): 
     if part in substring: 
      A[idx_a] = A[idx_a].replace(part, replacement)