[Tutor] how to unique the string
Alan Gauld
alan.gauld at btinternet.com
Sun Oct 23 11:08:44 CEST 2011
On 23/10/11 09:33, lina wrote:
> I have a further question:
>
> Welcome anyone help me transform the code to another form.
What form would you like it transformed to?
A flow chart? Another programming language? A different style of Python
(Functional programming or OOP maybe?)
I'm not sure what you want here?
In the meantime I'll offer some general comments:
> #!/usr/bin/python3
> import os.path
> mapping={}
>
>
> DICTIONARYFILE="dictionary.pdb"
> TOBETRANSLATEDFILEEXT=".out"
> OUTPUTFILEEXT=".txt"
>
> def generate_dict(dictionarysourcefile):
> for line in open(dictionarysourcefile,"r").readlines():
You don't need the readlines(). Just
use
for line in open(dictionarysourcefile,"r"):
That will work just as well.
> parts=line.strip().split()
> mapping[parts[2]]=parts[0]
>
>
> def translate_process(dictionary,tobetranslatedfile):
> results=[]
> unique={}
> for line in open(tobetranslatedfile,"r").readlines():
> tobetranslatedparts=line.strip().split()
> results.append(dictionary[tobetranslatedparts[2]])
> for residue in results:
> if residue not in unique:
> unique[residue]=1
> else:
> unique[residue]+=1
You can replace the if/else with the get() metjod of a dictionary:
unique[residue] = unique.get(residue,0) + 1
get returns the current value and if the value is not there it returns
the second parameter(zero here)
> for residue, numbers in unique.items():
> print(residue,numbers)
> with open(base+OUTPUTFILEEXT,"w") as f:
> f.write(str(unique)) ########### How can I output the
> results the same as the print one. Thanks.
create a string before you write it:
mystr = str(residue) + str(numbers)
is the simplest way. However you may prefer to format the string in
another way first. But thats your choice...
> if __name__=="__main__":
> generate_dict(DICTIONARYFILE)
> for infilename in os.listdir("."):
> base, ext = os.path.splitext(infilename)
> if ext == TOBETRANSLATEDFILEEXT:
> translate_process(mapping, infilename)
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
More information about the Tutor
mailing list