2016-05-25 12 views
-2

Ich habe eine Zeichenfolge in Python.Farbe für bestimmte Wörter in einem Satz ändern

string ="Marry had. A little lamb" 

und eine Zeichenfolge, die

part="had. lamb" 

Ich brauche drucken die erste Zeichenfolge und verfärben sich für die Worte aus dem zweiten String einige Worte aus der ersten Zeichenfolge enthält.

Wo ich jetzt bin.

class c: 
    blue = '\033[94m' 
    red = '\033[93m' 

string ="Marry had. A little lamb" 
part =" had. lamb" 

pos= [string.split().index(t) for t in part.split()] 
print(pos) # prints [1, 4] 
print c.blue+(string) #prints string in blue needs to print 1 and 4 from pos in red 

Antwort

2

Es sieht aus wie Sie Dinge zu kompliziert machen. Ein splitparts in eine Liste zu ändern, gefolgt von in string über die einzelnen Wörter laufen und testen, ob sie in parts erscheinen, scheint alles, was notwendig:

>>> partwords = part.split() 
>>> for w in string.split(): 
... if w in partwords: 
...  print c.red+w, 
... else: 
...  print c.blue+w, 

Ergebnis (und ja, Ihr Escape-Code ist für Gelb, nicht für rot):

Marry in colour

Verwandte Themen