Markus Rosenstihl wrote: > Hi, > I wrote a program (see below) to analyse my phone bill, which is shared > by three others and I don't know if there is a way to make lines like > this nicer: > if len(filter(re_name.search, line)) > 0 and len(filter(re_misc.search, > line)) == 0
if len(filter(re_name.search, line)) > 0: could be written if re_name.search(line): or even, since the re is just fixed text, if phone[name] in line: > > Is there for example a way to search the whole list and give back all > the line numbers containing a string? [ i for i, line in enumerate(rechnung) if "Monatliche" in line ] Kent > > Regards, > Markus > > > > phone={ "Markus":"1234561",\ > "Eckhard":"1234562",\ > "Robert":"1234563",\ > "Lei":"1234564" > } > > > > for name in phone.keys(): # loop through the list for all names > euro=0 # set at each run to 0 > i=0 # Line number > > # compile REs > re_name = re.compile(phone[name]) > re_month=re.compile("Monatliche") > re_misc=re.compile("Sonstige") > > for line in rechnung: > if len(filter(re_month.search, line)) == 0: # skip the > monthly > costs > # if "Monatliche" in line: > if len(filter(re_name.search, line)) > 0 and > len(filter(re_misc.search, line)) == 0: > # if phone[name] in line: > euro += float(rechnung[i][10].replace( ',' , > '.')) > if len(filter(re_misc.search, line)) > 0: # misc > services > if i not in misc_list: # add misc fees only once > misc_list.append(i) > misc += float(rechnung[i][10].replace( > ',' , '.')) > elif len(filter(re_month.search, line)) > 0: > if i not in monthly_list: # add monthly occuring fees > only once > monthly_list.append(i) > monthly += float(rechnung[i][10].replace( ',' , > '.')) # replace > commata with dots then add to the sum > i=i+1 > per_user = ( euro + ( monthly + misc )/ divider )*1.16 > total += per_user > print name,": ", per_user > > > > -- > If everything seems to be going well, > you obviously don't know what the hell is going on > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor