You can use regex with re module :
import re
meds = [ "tuberculin Cap(s)", "tylenol Cap(s)", "tramadol 2 Cap(s)"]
meds = [med.replace(" Cap(s)", " 1 Cap(s)") if len(re.findall("[a-zA-Z]+ \d+ Cap\(s\)", med)) == 0 else med for med in meds]
print meds
Prints above
['tuberculin 1 Cap(s)', 'tylenol 1 Cap(s)', 'tramadol 2 Cap(s)']
Parsing it as given :
, . python , for. , :
lst = ["one", "two", "three"]
print [element for element in lst]
['one', 'two', 'three'].
.
; [a-z]+, \d+ Cap\(s\). :
" 1 , " + ", , +. (Cap)" ".
re.findall(pattern, string) , pattern, string. 0 , . , + + "Cap (s)".
, , - , , "word + number +" Cap (s) ".
(, ), [a-zA-Z\d]+ \d+ Cap\(s\), , .
for
, for:
for index, med in enumerate(meds):
if len(re.findall("[a-zA-Z\d]+ \d+ Cap\(s\)", med)) == 0:
meds[index] = med.replace(" Cap(s)", " 1 Cap(s)")
, for , ( enumerate). , enumerate , :
for i in xrange(len(meds)):
if len(re.findall("[a-zA-Z\d]+ \d+ Cap\(s\)", meds[i])) == 0:
meds[i] = meds[i].replace(" Cap(s)", " 1 Cap(s)")
enumerate for: enumerate tuples, ( ) : (index, element). python : a,b = (1,2). a 1 b 2.