On 21/10/13 17:16, Siva Cn wrote:
Hi Sammy,

Try this this may help you !

Siva,
the list policy is not to provide full solutions for homework type questions. It's better to provide some hints and let the OP
figure it out for him/her self.

That having been said there are a few issues with the code below...

----------------------------------------------------------------------------------
def sort_file1_to_file2(file1, file2):
     """."""

A docstring with a dot is pretty useless, unless there's
some Python magic going on that I'm unaware of

     input_content = []

This is not needed since you initialise it below

     with open(file1, 'r') as fp:
         input_content = fp.read()
     input_content = input_content.splitlines()

It would be easier to use readlines to get each line in
a list. And given we know there are only 26 lines memory
usage is not an issue.

     _dict = {ele[0].lower(): ele for ele in input_content}

     out_content = "\n".join([_dict[chr(idx)]
                              for idx in range(97, 123)
                              if chr(idx) in _dict])

And this is way more complicated than need be. We know the lines start with unique letters of the alphabet so we can just use the built in sort() method or sorted() function to get

outcontent = "".join(sorted(input_content))  # readlines preserves \n?

If the first letters are mixed case there would need a slight tweak to account for that but there is no suggestion from the OP that that
is an issue.

     with open(file2, 'w') as fp:
         fp.write(out_content)

HTH
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to