2016-05-25 20 views
-2

私はPythonで文字列を持っています。文中の特定の単語の色を変更する

string ="Marry had. A little lamb" 

と最初の文字列私は最初の文字列を印刷し、2番目の文字列からの単語の色を変更する必要が

part="had. lamb" 

からいくつかの単語を含む文字列。

ここにいます。

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 

答えて

2

あなたが過度に複雑にしているようです。 splitstringに個々の単語を反復処理し、それらがpartsに表示された場合のテストに続いて、リストにpartsを変更するには、すべてのことが必要だと思われる:

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

結果(はい、あなたのエスケープコードが黄色のためです、赤色ではない):

Marry in colour

関連する問題