On 2018-05-31 15:18, Tobiah wrote:
I had a case today where I needed to sort two string:
['Awards', 'Award Winners']
I consulted a few sources to get a suggestion as to
what would be correct. My first idea was to throw them
through a Linux command line sort:
Awards
Award Winners
Then I did some Googling, and found that most US systems seem
to prefer that one ignore spaces when alphabetizing. The sort
program seemed to agree.
I put the items into the database that way, but I had forgotten
that my applications used python to sort them anyway. The result
was different:
>>> a = ['Awards', 'Award Winners']
>>> sorted(a)
['Award Winners', 'Awards']
So python evaluated the space as a lower ASCII value.
Thoughts? Are there separate tools for alphabetizing
rather then sorting?
You could split the string first:
>>> a = ['Awards', 'Award Winners']
>>> sorted(a, key=str.split)
['Award Winners', 'Awards']
If you want it to be case-insensitive:
>>> sorted(a, key=lambda s: s.lower().split())
['Award Winners', 'Awards']
--
https://mail.python.org/mailman/listinfo/python-list